31using System.Collections.Generic;
33using Microsoft.Xna.Framework;
37 public partial class GameObject : GameObjectContainer
82 if ( o is
T && predicate( (
T)o ) )
100 if (childObject ==
this)
101 throw new InvalidOperationException(
"Child cannot be same as parent");
109 throw new ArgumentException(
"Child object can not be a non-GameObject" );
112 childObject.
Parent =
this;
128 throw new ArgumentException(
"Child object can not be a non-GameObject" );
131 childObject.
Parent =
null;
169 if (child.IsAddedToGame)
174 if ( child.Parent ==
this )
205 if (this.
Parent is
null)
return this;
213 double xFactor = newSize.
X / oldSize.
X;
214 double yFactor = newSize.
Y / oldSize.
Y;
219 o.
Size =
new Vector( oldChildSize.
X * xFactor, oldChildSize.
Y * yFactor );
224 o.
Position =
new Vector( oldChildPosition.
X * xFactor, oldChildPosition.
Y * yFactor );
static void OnRemoveObject(IGameObject obj)
bool FarseerGame
Onko käytössä Farseer-fysiikkamoottori HUOM: Tämä saattaa poistua tulevaisuudessa jos/kun siitä tehdä...
static void OnAddObject(IGameObject obj)
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
void UpdateChildSizes(Vector oldSize, Vector newSize)
void NotifyParentAboutChangedSizingAttributes()
Should be called whenever properties that might affect layouts are changed.
void UpdateChildren(Time time)
bool IsAddedToGame
Onko olio lisätty peliin.
SynchronousList< GameObject > Objects
Olion lapsioliot. Saa muuttaa.
SynchronousList< GameObject > GetChildObjectList
Palauttaa olion lapsioliot.
SynchronousList< GameObject > _childObjects
GameObject(double width, double height)
Alustaa uuden peliolion.
void OnChildRemoved(GameObject child)
bool IsInsideChildren(Vector point)
void Remove(IGameObject childObject)
Poistaa lapsiolion. Jos haluat tuhota olion, kutsu mielummin olion Destroy-metodia.
bool IsInside(Vector point)
Onko piste p tämän olion sisäpuolella.
IEnumerable< T > GetChildObjects< T >()
Palauttaa olion lapsioliot.
virtual void InitChildren()
Alustaa lapsioliot
GameObject GetMainParent()
Antaa olion korkeimman tason isäntäolion. Eli vanhemman vanhemman...
virtual void Clear()
Poistaa kaikki lapsioliot.
void Add(IGameObject childObject)
Lisää annetun peliolion tämän olion lapseksi. Lapsiolio liikkuu tämän olion mukana.
int? ObjectCount
Olion lapsiolioiden lukumäärä. Kuten Objects.Count, mutta optimoitu.
void OnChildAdded(GameObject child)
bool autoResizeChildObjects
IGameObject Parent
Olio, jonka lapsiolio tämä olio on. Jos null, olio ei ole minkään olion lapsiolio.
Action AddedToGame
Tapahtuu, kun olio lisätään peliin.
Action Removed
Tapahtuu, kun olio poistetaan pelistä (tuhotaan tai ei).
bool IsUpdated
Tarvitseeko olio päivittämistä. Kun perit oman luokkasi tästä luokasta, aseta tämä arvoon true,...
Kantaluokka fysiikkapeleille.
static new PhysicsGameBase Instance
Käynnissä olevan fysiikkapelin pääolio.
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
Synkroninen lista, eli lista joka päivittyy vasta kun sen Update-metodia kutsutaan....
Action Changed
Tapahtuu kun lista on muuttunut.
void ForEach(Action< T > action)
Suorittaa annetun toimenpiteen kaikille (nykyisille) listan alkioille.
Action< T > ItemRemoved
Tapahtuu kun elementti on poistettu listasta.
Yhteinen rajapinta kaikille peliolioille.
Vector RelativePositionToMainParent
Angle RelativeAngleToMainParent
new Vector Position
Paikka.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
double Y
Vektorin Y-komponentti
double X
Vektorin X-komponentti.