31 using System.ComponentModel;
33 using System.Xml.Serialization;
34 using Microsoft.Xna.Framework;
35 using Microsoft.Xna.Framework.Graphics;
36 using System.Collections.Generic;
38 using Microsoft.Xna.Framework.Content;
41 using System.Runtime.InteropServices;
45 using Microsoft.Xna.Framework.GamerServices;
53 using XnaColor = Microsoft.Xna.Framework.Color;
66 public partial class Game : Microsoft.Xna.Framework.Game,
ControlContexted, IDisposable, GameObjectContainer
69 [DllImport(
"user32.dll" )]
70 private static extern int GetSystemMetrics(
int smIndex );
72 [DllImport(
"user32.dll")]
73 private static extern bool SetProcessDPIAware();
75 [DllImport(
"gdi32.dll")]
76 static extern int GetDeviceCaps(IntPtr hdc,
int nIndex);
85 Queue<Action> PendingActions =
new Queue<Action>();
102 get {
return Layers.FindAll( l => l.IgnoresZoom && l.RelativeTransition ==
Vector.
Zero ).AsReadOnly(); }
110 get {
return Layers.FindAll( l => !l.IgnoresZoom || l.RelativeTransition !=
Vector.
Zero ).AsReadOnly(); }
118 get {
return Layers.FirstIndex; }
126 get {
return Layers.LastIndex; }
134 get {
return Layers.Count; }
140 public static string Name {
get;
private set; }
188 internal static ResourceContentManager ResourceContent {
get;
private set; }
223 get {
return false; }
300 get {
return theLevel; }
310 get {
return currentTime; }
320 get {
return currentTime; }
333 get {
return Window.Title; }
334 set {
Window.Title = value; }
340 internal int ObjectCount
353 get {
return Window.Fullscreen; }
354 set {
Window.Fullscreen = value; }
366 [EditorBrowsable( EditorBrowsableState.Never )]
369 get {
return ( (Microsoft.Xna.Framework.Game)
Instance ).GraphicsDevice; }
372 internal static GraphicsDeviceManager GraphicsDeviceManager {
get;
private set; }
375 internal static List<Light> Lights {
get {
return lights; } }
379 private static List<Light> lights =
new List<Light>();
382 private Level theLevel;
384 private bool loadContentHasBeenCalled =
false;
385 private bool beginHasBeenCalled =
false;
388 private static Time currentRealTime =
new Time();
391 private static Time currentTime =
new Time();
409 throw new Exception(
"Only one instance of the Game class can be created." );
412 Name = this.GetType().Assembly.FullName.Split(
',' )[0];
420 InitializeGraphics( device );
427 SetProcessDPIAware();
431 Components.Add(
new GamerServicesComponent(
this ) );
437 ShowErrorMessage(
"Could not read from data directory. " + ex.Message);
441 ShowErrorMessage(
"Could not write to data directory. " + ex.Message);
451 private void WindowResized(
int oldWidth,
int oldHeight,
int newWidth,
int newHeight )
456 Viewport view =
new Viewport( 0, 0, newWidth, newHeight );
459 Mouse.Viewport = view;
461 if ( screen != null )
462 screen.viewPort = view;
465 private void ShowErrorMessage(
string message)
489 private void InitializeLayers()
492 Layers.ItemAdded += OnLayerAdded;
493 Layers.ItemRemoved += OnLayerRemoved;
495 for (
int i = 0; i < 7; i++ )
506 private void InitializeContent()
510 ResourceContent =
new ResourceContentManager( this.Services, WindowsPhoneResources.ResourceManager );
512 ResourceContent =
new ResourceContentManager( this.Services, XBox360Resources.ResourceManager );
514 ResourceContent =
new ResourceContentManager( this.Services, Resources.ResourceManager );
517 Content.RootDirectory =
"Content";
520 private void InitializeGraphics(
int device )
524 GraphicsDeviceManager =
new GraphicsDeviceManager(
this );
526 GraphicsDeviceManager =
new TargetedGraphicsDeviceManager(
this, device );
528 GraphicsDeviceManager =
new GraphicsDeviceManager(
this );
530 GraphicsDeviceManager.PreferredDepthStencilFormat =
Jypeli.
Graphics.SelectStencilMode();
548 if ( lo == obj || co == null )
571 if ( lo == obj || co == null )
583 if ( iObj == null )
return;
588 if ( cObj != null ) ActivateObject( cObj );
594 if ( iObj == null )
return;
599 if ( cObj != null ) DeactivateObject( cObj );
602 internal static void OnAddObject(
IGameObject obj )
608 internal static void OnRemoveObject(
IGameObject obj )
614 private void OnLayerAdded(
Layer l )
620 private void OnLayerRemoved(
Layer l )
635 InstanceInitialized += actionMethod;
645 Instance.PendingActions.Enqueue( action );
647 InstanceInitialized += action;
683 InstanceInitialized += delegate { actionMethod( o1 ); };
693 if ( o.
Layer != null && o.
Layer.Objects.WillContain( o ) )
697 throw new NotSupportedException(
"Object cannot be added twice" );
700 throw new NotSupportedException(
"Object cannot be added to multiple layers" );
714 if ( light == null )
throw new NullReferenceException(
"Tried to add a null light to game" );
716 if ( lights.Count >= 1 )
717 throw new NotSupportedException(
"Only one light is supported" );
730 if ( o == null )
throw new NullReferenceException(
"Tried to add a null object to game" );
734 internal static IList<IGameObject> GetObjectsAboutToBeAdded()
736 List<IGameObject> result =
new List<IGameObject>();
740 layer.GetObjectsAboutToBeAdded( result );
789 public List<GameObject>
GetObjects( Predicate<GameObject> condition )
791 List<GameObject> objs =
new List<GameObject>();
795 foreach ( var obj
in Layers[i].Objects )
799 if ( gobj != null && condition( gobj ) )
815 return GetObjects( o => tags.Contains<
string>( o.Tag as
string ) );
827 foreach ( var obj
in Layers[i].Objects )
831 if ( gobj != null && condition( gobj ) )
895 Predicate<GameObject> isInsideRadius = delegate (
GameObject obj )
899 Vector positionUp =
new Vector( position.
X, position.
Y + radius );
900 Vector positionDown =
new Vector( position.
X, position.
Y - radius );
901 Vector positionLeft =
new Vector( position.
X - radius, position.
Y );
902 Vector positionRight =
new Vector( position.
X + radius, position.
Y );
904 if ( obj.
IsInside( position ) )
return true;
905 if ( obj.
IsInside( positionUp ) )
return true;
906 if ( obj.
IsInside( positionDown ) )
return true;
907 if ( obj.
IsInside( positionLeft ) )
return true;
908 if ( obj.
IsInside( positionRight ) )
return true;
927 return objs.Count > 0 ? objs[0] : null;
996 return GetObjects( obstacle => !( obstacle is
Widget ) && obstacle.IsBlocking( pos1, pos2 ) );
1016 return new Image( name );
1027 for (
int i = 0; i < names.Length; i++ )
1040 public static Image[]
LoadImages(
string baseName,
int startIndex,
int endIndex,
bool zeroPad =
false )
1042 if ( startIndex > endIndex )
throw new ArgumentException(
"Starting index must be smaller than ending index.");
1044 Image[] result =
new Image[endIndex - startIndex];
1049 int digits = endIndex.ToString().Length;
1050 format =
"{0}{1:" +
"0".Repeat( digits ) +
"}";
1057 for (
int i = startIndex; i < endIndex; i++ )
1059 string imgName = String.Format( format, baseName, i );
1060 result[i - startIndex] =
LoadImage( imgName );
1093 for (
int i = 0; i < names.Length; i++ )
1119 addMessageDisplay();
1158 foreach ( var layer
in Layers )
1161 addMessageDisplay();
1176 foreach ( var layer
in Layers )
1179 layer.Objects.Update( time, o => o is
Widget );
1182 Timer.UpdateAll( time, t => t.IgnorePause );
1191 this.
Camera.Update( time );
1193 Timer.UpdateAll( time );
1196 while (PendingActions.Count > 0)
1198 PendingActions.Dequeue()();
1207 [EditorBrowsable( EditorBrowsableState.Never )]
1214 Phone.ResetScreen();
1216 Point defaultSize = GetDefaultWindowSize();
1222 theLevel =
new Level(
this );
1226 addMessageDisplay();
1236 [EditorBrowsable( EditorBrowsableState.Never )]
1239 if ( !loadContentHasBeenCalled )
1241 if ( InstanceInitialized != null )
1247 loadContentHasBeenCalled =
true;
1250 #if DEBUG && !WINDOWS_PHONE 1262 internal void CallBegin()
1265 beginHasBeenCalled =
true;
1283 protected override void OnExiting(
object sender, EventArgs args )
1285 if ( Exiting != null )
1288 base.OnExiting( sender, args );
1291 private void addMessageDisplay()
1298 [EditorBrowsable( EditorBrowsableState.Never )]
1299 protected override void Update( GameTime gameTime )
1301 if ( !loadContentHasBeenCalled || !beginHasBeenCalled )
1304 base.Update( gameTime );
1309 currentRealTime.Advance( gameTime );
1311 if ( this.IsActive ) controls.Update();
1318 currentTime.Advance( gameTime );
1319 this.
Update( currentTime );
1326 UpdateDebugScreen( currentRealTime );
1328 base.Update( gameTime );
1335 [EditorBrowsable( EditorBrowsableState.Never )]
1336 protected override void Draw( GameTime gameTime )
1345 spriteBatch.Begin( SpriteSortMode.Deferred, BlendState.AlphaBlend );
1364 foreach ( var layer
in Layers )
1369 Graphics.LineBatch.Begin( ref worldMatrix );
1370 Graphics.Canvas.Reset(
Level );
1371 Paint( Graphics.Canvas );
1372 Graphics.LineBatch.End();
1376 base.Draw( gameTime );
1385 [Obsolete(
"Please set Window.Width, Window.Height and Window.Fullscreen instead." )]
1390 Window.Fullscreen = fullscreen;
1406 private Point GetDefaultWindowSize()
1412 System.Drawing.Graphics graphics =
System.Drawing.Graphics.FromHwnd(IntPtr.Zero);
1413 IntPtr hdc = graphics.GetHdc();
1414 int logicalScreenHeight = GetDeviceCaps(hdc, (
int)DeviceCap.VERTRES);
1415 int physicalScreenHeight = GetDeviceCaps(hdc, (
int)DeviceCap.DESKTOPVERTRES);
1416 graphics.ReleaseHdc(hdc);
1419 float scaleFactor = (float)logicalScreenHeight / (
float)physicalScreenHeight;
1421 xres = (int)(xres * scaleFactor);
1422 yres = (int)(yres * scaleFactor);
1424 int borderwidth = GetSystemMetrics( 32 );
1425 int titleheight = GetSystemMetrics( 30 );
1426 yres -= borderwidth + titleheight;
1434 return new Point( xres, yres );
1459 bool cursorVisible = IsMouseVisible;
1460 IsMouseVisible =
true;
1464 kyselyIkkuna.
Closed += delegate { IsMouseVisible = cursorVisible;
IsPaused =
false; };
1465 Add( kyselyIkkuna );
1476 Type gameType = this.GetType();
1479 foreach ( PropertyInfo property
in gameType.GetProperties( BindingFlags.GetProperty |
StorageFile.AllOfInstance ) )
1481 if ( property.GetCustomAttributes( typeof(
SaveAttribute ),
true ).Length == 0 )
1484 object propValue =
property.GetValue(
this, null );
1485 Type propType =
property.PropertyType;
1487 state.Save( propValue, propType,
FileManager.SanitizeFileName( property.Name ) +
"Property" );
1490 foreach ( FieldInfo field
in gameType.GetFields( BindingFlags.GetField |
StorageFile.AllOfInstance ) )
1492 if ( field.GetCustomAttributes( typeof(
SaveAttribute ),
true ).Length == 0 )
1495 object fieldValue = field.GetValue(
this );
1496 Type fieldType = field.FieldType;
1498 state.Save( fieldValue, fieldType,
FileManager.SanitizeFileName( field.Name ) +
"Field" );
1513 Type gameType = this.GetType();
1517 foreach ( PropertyInfo property
in gameType.GetProperties( BindingFlags.GetProperty |
StorageFile.AllOfInstance ) )
1519 if ( property.GetCustomAttributes( typeof(
SaveAttribute ),
true ).Length == 0 )
1522 object oldValue =
property.GetValue(
this, null );
1523 Type propType =
property.PropertyType;
1525 object newValue = state.Load( oldValue, propType,
FileManager.SanitizeFileName( property.Name ) +
"Property" );
1526 property.SetValue(
this, newValue, null );
1529 foreach ( FieldInfo field
in gameType.GetFields( BindingFlags.GetField |
StorageFile.AllOfInstance ) )
1531 if ( field.GetCustomAttributes( typeof(
SaveAttribute ),
true ).Length == 0 )
1534 object oldValue = field.GetValue(
this );
1535 Type fieldType = field.FieldType;
1537 object newValue = state.Load( oldValue, fieldType,
FileManager.SanitizeFileName( field.Name ) +
"Field" );
1538 field.SetValue(
this, newValue );
1546 Factory.AddFactory<
T>( tag, method );
1551 Factory.RemoveFactory<
T>( tag, method );
1556 return Factory.FactoryCreate<
T>( tag );
1572 [EditorBrowsable( EditorBrowsableState.Never )]
1582 private void BindControlHelp( params
object[] keysOrButtons )
1584 String nappaimet =
"";
1586 foreach (
object o
in keysOrButtons )
1593 nappaimet += k.ToString();
1604 nappaimet += b.ToString();
1610 MessageDisplay.
Add(
"Katso näppäinohje painamalla " + nappaimet.Substring( 0, nappaimet.Length - 3 ) );
1615 return new Image( ResourceContent.Load<Texture2D>( name ) );
1629 return new Font( name, ContentSource.GameContent );
static void AssertInitialized< T1 >(Action< T1 > actionMethod, T1 o1)
Suorittaa aliohjelman kun peli on varmasti alustettu.
static Image LoadImage(string name)
Lataa kuvan contentista.
Action< Exception > ReadAccessDenied
Jypelin sisäiset metodit ja propertyt joihin käyttäjän ei tarvitse päästä käsiksi kuuluvat tähän luokkaan...
Color Color
Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
PhoneBackButton PhoneBackButton
Back-nappi (Windows Phone 7)
static bool SmoothTextures
Tekstuurien (kuvien) reunanpehmennys skaalattaessa (oletus päällä).
static Action InstanceInitialized
Tapahtuu kun Game.Instance on alustettu.
static Image LoadImageFromResources(string name)
static void DoNextUpdate(Action action)
Suorittaa aliohjelman seuraavalla päivityksellä.
GameObject GetFirstObject(Predicate< GameObject > condition)
Palauttaa ensimmäisen peliolion joka toteuttaa ehdon (null jos mikään ei toteuta).
virtual void Paint(Canvas canvas)
void LoadGame(string tagName)
Lataa pelin.
List< GameObject > GetObjectsBetween(Vector pos1, Vector pos2)
Palauttaa pelioliot kahden pisteen välillä.
GamePad ControllerFour
Peliohjain neljä.
static readonly string MyDocuments
Omat tiedostot.
static Layer CreateStaticLayer()
Luo staattisen kerroksen (ei liiku kameran mukana)
static readonly Color LightGray
Vaalea harmaa.
void ClearTimers()
Poistaa kaikki ajastimet.
static readonly Color Red
Punainen.
void SaveGame(string tagName)
Tallentaa pelin.
int MaxLayer
Suurin mahdollinen kerros.
Widget GetFirstWidget(Predicate< Widget > condition)
Palauttaa ensimmäisen ruutuolion joka toteuttaa ehdon (null jos mikään ei toteuta).
static readonly string DataPath
Ohjelman data-alihakemisto.
bool AcceptsFocus
Onko olio valittavissa. Vain valittu (fokusoitu) olio voii kuunnella näppäimistöä ja muita ohjainlait...
string Title
Teksti, joka näkyy pelin ikkunassa (jos peli ei ole koko ruudun tilassa).
bool IsPaused
Onko peli pysähdyksissä.
Action< Exception > WriteAccessDenied
int MinLayer
Pienin mahdollinen kerros.
Sisältää näytön leveyden ja korkeuden sekä reunojen koordinaatit. Y-koordinaatti kasvaa ylöspäin...
GameObject GetObjectAt(Vector position)
Palauttaa peliolion, joka on annetussa paikassa. Jos paikassa ei ole mitään pelioliota, palautetaan null. Jos olioita on useampia, palautetaan päällimmäinen.
void Reset()
Resetoi kameran (keskittää, laittaa zoomin oletusarvoon ja lopettaa seuraamisen). ...
bool IsInside(Vector point)
Onko piste p tämän olion sisäpuolella.
List< GameObject > GetObjectsAt(Vector position)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa. Jos paikassa ei ole mitään pelioliota...
Listener Listen(Button button, ButtonState state, Handler handler, string helpText)
override void Initialize()
This gets called after the GraphicsDevice has been created. So, this is the place to initialize the r...
double ZoomFactor
Kameran zoomauskerroin. Oletuksena 1.0. Mitä suurempi zoomauskerroin, sitä lähempänä kamera on (esim ...
IList< Layer > StaticLayers
Kerrokset, joilla olevat pelioliot eivät liiku kameran mukana.
void Clear()
Palauttaa oletustaustan.
GameObject GetObjectAt(Vector position, object tag, double radius)
Palauttaa peliolion, joka on annetussa paikassa tietyllä säteellä. Vain annetulla tagilla varustetut ...
Game(int device)
Alustaa uuden peliluokan.
bool IsFullScreen
Onko peli kokoruututilassa.
void Remove(Layer l)
Poistaa oliokerroksen pelistä.
Ääniefekti. Yhdestä efektistä voi luoda CreateSound-metodilla monta ääntä (Sound), jotka voivat soida yhtäaikaa. Ääntä ei tarvitse kuitenkaan luoda itse, jos vain kutsuu Play-metodia.
virtual void Continue()
Tässä alustetaan peli tombstoning-tilasta. Jos metodia ei ole määritelty, kutsutaan Begin...
List< String > GetHelpTexts()
Palauttaa kaikki ohjaimien ohjetekstit listana.
virtual void PausedUpdate(Time time)
Ajetaan Updaten sijaan kun peli on pysähdyksissä.
bool Play()
Soittaa äänen.
Accelerometer Accelerometer
Kiihtyvyysanturi (Windows Phone 7)
delegate object FactoryMethod()
void UpdateHandlers(Time time)
Kutsuu tapahtumankäsittelijöitä.
TouchPanel TouchPanel
Kosketusnäyttö (Windows Phone 7)
Image Image
Olion kuva. Voi olla null, jolloin piirretään vain väri.
ButtonState
Napin (minkä tahansa) asento.
void ClearControls()
Palauttaa kontrollit alkutilaansa.
ListenContext ControlContext
virtual void Add(IGameObject o, int layer)
Lisää peliolion peliin, tiettyyn kerrokseen.
delegate void ResizeEvent(int oldWidth, int oldHeight, int newWidth, int newHeight)
Tapahtumatyyppi ikkunan koon muutokselle.
GamePad ControllerOne
Peliohjain yksi.
List< GameObject > GetObjects(Predicate< GameObject > condition)
Palauttaa listan kaikista peliolioista jotka toteuttavat ehdon. Lista on järjestetty päällimmäisestä ...
static readonly Vector Zero
Nollavektori.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
Kamera. Määrittää mikä osa pelitasosta on kerralla näkyvissä.
Aliohjelmia ja ominaisuuksia, jotka toimivat vain puhelimessa. Voidaan kutsua myös PC:lle käännettäessä, ...
static SoundEffect LoadSoundEffectFromResources(string name)
void ShowMessageWindow(string message)
Näyttää viesti-ikkunan.
void Add(IGameObject o)
Lisää olion peliin. Tavalliset oliot tulevat automaattisesti kerrokselle 0 ja ruutuoliot päällimmäise...
virtual void Begin()
Tässä alustetaan peli.
Puhelimen kiihtyvyysanturi.
double Height
Näytön korkeus y-suunnassa.
static Time RealTime
Todellinen peliaika. Sisältää tiedon siitä, kuinka kauan peliä on pelattu (Time.SinceStartOfGame) ja ...
void Clear()
Tyhjentää kaikki kontrollit.
static Image [] LoadImages(string baseName, int startIndex, int endIndex, bool zeroPad=false)
Lataa taulukon kuvia contentista.
List< GameObject > GetObjectsWithTag(params string[] tags)
Palauttaa listan kaikista peliolioista joilla on tietty tagi. Lista on järjestetty päällimmäisestä al...
Contains graphics resources.
IList< Layer > DynamicLayers
Kerrokset, joilla olevat pelioliot liikkuvat kameran mukana.
Näppäimistö peliohjaimena.
void ClearGameObjects()
Tuhoaa ja poistaa pelistä kaikki pelioliot (ml. fysiikkaoliot).
void AddFactory< T >(string tag, Factory.FactoryMethod method)
Game()
Alustaa uuden peliluokan.
Pelikenttä, johon voi lisätä olioita. Kentällä voi myös olla reunat ja taustaväri tai taustakuva...
override void Draw(GameTime gameTime)
SynchronousList< Layer > Layers
Kerrokset, joilla pelioliot viihtyvät.
static ScreenView Screen
Näytön dimensiot, eli koko ja reunat.
Vector Position
Kameran sijainti.
Peliluokka reaaliaikaisille peleille.
void ConfirmExit()
Kysyy haluaako lopettaa pelin ja lopettaa jos vastataan kyllä.
GamePad [] GameControllers
Peliohjaimet 1-4.
static Font LoadFont(string name)
Lataa fontin. Fontin tulee olla lisätty content-hakemistoon.
Color PerimeterColor
Väri, jolla kentän reunat piirretään.
static Vector Wind
Tuuli. Vaikuttaa vain efekteihin
Pistemäinen valonlähde.
MediaPlayer MediaPlayer
Mediasoitin.
override void Update(GameTime gameTime)
Background Background
Kentän taustakuva.
ListenContext ControlContext
Pelin pääohjainkonteksti.
Phone Phone
Phone-olio esim. puhelimen tärisyttämiseen.
static void DoNextUpdate< T1, T2 >(Action< T1, T2 > action, T1 p1, T2 p2)
Suorittaa aliohjelman seuraavalla päivityksellä.
Kerros. Vastaa olioiden piirtämisestä.
double Height
Kentän korkeus.
void Pause()
Pysäyttää pelin tai jatkaa sitä, jos se on jo pysäytetty.
void Add(Layer l)
Lisää oliokerroksen peliin.
T FactoryCreate< T >(string tag)
static new GraphicsDevice GraphicsDevice
Level Level
Aktiivinen kenttä.
void RemoveFactory< T >(string tag, Factory.FactoryMethod method)
override void OnExiting(object sender, EventArgs args)
void ResetLayers()
Nollaa oliokerrokset. Huom. tuhoaa kaikki pelioliot!
static new Action Exiting
Tapahtuu kun peli lopetetaan.
List< GameObject > GetObjectsAt(Vector position, object tag, double radius)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa tietyllä säteellä. Jos paikassa ei ole m...
bool DrawPerimeter
Kentän reunat näkyvissä tai pois näkyvistä. Huomaa, että tämä ominaisuus ei vaikuta reunojen törmäysk...
Listener Listen(Key k, ButtonState state, Handler handler, String helpText)
Ajastin, joka voidaan asettaa laukaisemaan tapahtumia tietyin väliajoin.
static void PlaySound(string name)
Soittaa ääniefektin.
static string Name
Pelin nimi.
static SoundEffect LoadSoundEffect(string name)
Lataa ääniefektin contentista.
double Width
Kentän leveys.
int LayerCount
Kerrosten määrä.
virtual void OnObjectAdded(IGameObject obj)
Yhteinen rajapinta kaikille peliolioille.
GamePad ControllerThree
Peliohjain kolme.
void Remove(IGameObject o)
Poistaa olion pelistä. Jos haluat tuhota olion, kutsu mielummin olion Destroy-metodia.
Sarja kuvia, jotka vaihtuvat halutulla nopeudella. Yksi animaatio koostuu yhdestä tai useammasta kuva...
GamePad ControllerTwo
Peliohjain kaksi.
List< GameObject > GetObjectsAt(Vector position, double radius)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa tietyllä säteellä. Jos paikassa ei ole m...
void Add(IGameObject childObject)
Lisää annetun peliolion tämän olion lapseksi. Lapsiolio liikkuu tämän olion mukana, ja sen paikka ja koko ilmaistaan suhteessa tähän olioon.
bool IsInside(Vector point)
Luokka, joka sisältää metodeita kuvioiden ja tekstuurien piirtämiseen 2D-tasossa. ...
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan. Jos listalle lisätään IUpdatable-rajapinnan toteuttavia olioita, kutsutaan myös niiden Update-metodeja samalla.
static Time Time
Peliaika. Sisältää tiedon siitä, kuinka kauan peliä on pelattu (Time.SinceStartOfGame) ja kuinka kaua...
Camera Camera
Kamera, joka näyttää ruudulla näkyvän osan kentästä. Kameraa voidaan siirtää, zoomata tai asettaa seu...
static void DoNextUpdate< T1 >(Action< T1 > action, T1 p1)
Suorittaa aliohjelman seuraavalla päivityksellä.
virtual void ClearAll()
Nollaa kaiken.
bool Tombstoning
Tallennetaanko pelin tilanne jos ruutu sammutetaan, vaihdetaan ohjelmaa tms.
override void LoadContent()
XNA calls this when graphics resources need to be loaded. Note that this can be called multiple times...
double Width
Olion leveys (X-suunnassa, leveimmässä kohdassa).
virtual void Update(Time time)
Peliolion päivitys. Tätä kutsutaan, kun IsUpdated-ominaisuuden arvoksi on asetettu true ja olio on li...
virtual void Update(Time time)
Ajetaan kun pelin tilannetta päivitetään. Päivittämisen voi toteuttaa perityssä luokassa toteuttamall...
static readonly Color DarkGray
Tumma harmaa.
List< GameObject > GetObjectsAt(Vector position, object tag)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa tietyllä säteellä. Jos paikassa ei ole m...
void ShowControlHelp()
Näyttää kontrollien ohjetekstit.
GameObject GetObjectAt(Vector position, object tag)
Palauttaa peliolion, joka on annetussa paikassa. Vain annetulla tagilla varustetut oliot huomioidaan...
MessageDisplay MessageDisplay
Viestinäyttö, johon voi laittaa viestejä.
void StopVibrating()
Lopettaa puhelimen värinän.
bool SetWindowSize(int width, int height, bool fullscreen)
Asettaa ikkunan koon.
void Exit()
Lopettaa pelin.
double Width
Näytön leveys x-suunnassa.
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
static Image [] LoadImages(params string[] names)
Lataa taulukon kuvia contentista.
static void AssertInitialized(Action actionMethod)
Suorittaa aliohjelman kun peli on varmasti alustettu.
virtual void OnObjectRemoved(IGameObject obj)
void RemoveAllLayers()
Poistaa kaikki oliokerrokset. Huom. tuhoaa kaikki pelioliot!
static SoundEffect [] LoadSoundEffects(params string[] names)
Lataa taulukon ääniefektejä contentista.
Keyboard Keyboard
Näppäimistö.
Widget GetWidgetAt(Vector position)
Palauttaa ruutuolion, joka on annetussa paikassa. Jos paikassa ei ole mitään oliota, palautetaan null. Jos olioita on useampia, palautetaan päällimmäinen.
Usein käytettyjä polkuja Windowsissa.
static Animation LoadAnimation(string name)
Lataa animaation contentista.
object Tag
Vapaasti asetettava muuttuja.
bool SetWindowSize(int width, int height)
Asettaa ikkunan koon.
double Height
Olion korkeus (Y-suunnassa, korkeimmassa kohdassa).
GameObject GetObjectAt(Vector position, double radius)
Palauttaa peliolion, joka on annetussa paikassa tietyllä säteellä. Jos paikassa ei ole mitään pelioli...