34 public partial class GameObject
57 if ( value.X < 0.0 || value.Y < 0.0 )
58 throw new ArgumentException(
"The size must be positive." );
79 base.Position = value;
82 o.RelativePositionToMainParent = o.InitialRelativePosition;
83 o.RelativeAngleToMainParent = o.InitialRelativeAngle;
87 foreach(var o
in Objects?.GetObjectsAboutToBeAdded())
89 o.RelativePositionToMainParent = o.InitialRelativePosition;
90 o.RelativeAngleToMainParent = o.InitialRelativeAngle;
112 o.RelativePositionToMainParent = o.InitialRelativePosition;
113 o.RelativeAngleToMainParent = o.InitialRelativeAngle;
117 foreach (var o
in Objects?.GetObjectsAboutToBeAdded())
119 o.RelativePositionToMainParent = o.InitialRelativePosition;
120 o.RelativeAngleToMainParent = o.InitialRelativeAngle;
142 get {
return Shape.GetType().Name; }
148 this._size =
new Vector( width, height );
159 double pointX, pointY;
181 double x = 2 * ( pointX - pX ) / this.
Width;
182 double y = 2 * ( pointY - pY ) / this.
Height;
188 double x = pointX - pX;
189 double y = pointY - pY;
207 if ( point.
X >= ( p.
X -
Width / 2 )
208 && point.
X <= ( p.
X +
Width / 2 )
210 && point.
Y <= ( p.
Y +
Height / 2 ) )
return true;
221 if ( pointX >= ( pX -
Width / 2 )
222 && pointX <= ( pX +
Width / 2 )
223 && pointY >= ( pY -
Height / 2 )
224 && pointY <= ( pY +
Height / 2 ) )
return true;
238 Vector normal = (pos2 - pos1).Normalize();
243 if (ep < p1p || ep > p2p)
void UpdateChildSizes(Vector oldSize, Vector newSize)
bool IsBetween(Vector pos1, Vector pos2)
Onko peliolio kahden pisteen välissä
string ShapeString
Olion muoto merkkijonona (kenttäeditorin käyttöön)
override Vector?? Position
SynchronousList< GameObject > Objects
Olion lapsioliot. Saa muuttaa.
bool IsInsideChildren(Vector point)
void InitDimensions(double width, double height, Shape shape)
bool IsInside(Vector point)
Onko piste p tämän olion sisäpuolella.
override Vector Size
Olion koko pelimaailmassa. Kertoo olion äärirajat, ei muotoa.
void RefreshLayout()
Päivittää lapsiolioiden paikat ja koot, jos widgetille on asetettu asettelija. Tätä metodia EI yleens...
bool IsInsideRect(Vector point)
Onko piste p tämän olion ympäröivän suorakulmion sisäpuolella.
bool _layoutNeedsRefreshing
bool autoResizeChildObjects
Angle RelativeAngleToMainParent
Olion kulma suhteessa vanhimpaan vanhempaan. Jos olio ei ole minkään toisen peliolion lapsiolio,...
Vector RelativePositionToMainParent
Sijainti suhteessa vanhimpaan vanhempaan
IGameObject Parent
Olio, jonka lapsiolio tämä olio on. Jos null, olio ei ole minkään olion lapsiolio.
double Height
Olion korkeus (Y-suunnassa, korkeimmassa kohdassa).
Angle InitialRelativeAngle
Vector InitialRelativePosition
double Width
Olion leveys (X-suunnassa, leveimmässä kohdassa).
abstract bool IsUnitSize
If true, the shape must be scaled by the size of the object that has the shape. Typically,...
virtual bool IsInside(double x, double y)
Onko piste muodon sisällä. Pisteen koordinaatiston origo on muodon keskellä. Muoto on kokoa 1x1 jos I...
static Shape FromString(string shapeStr)
Luo muodon merkkijonosta, esim. "Circle"
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
static readonly Angle Zero
Nollakulma.
Vector LeftNormal
Vasen normaali.
double Y
Vektorin Y-komponentti
Vector RightNormal
Oikea normaali.
double X
Vektorin X-komponentti.
double ScalarProjection(Vector vector)
Skalaariprojektio annettuun vektoriin https://en.wikipedia.org/wiki/Scalar_projection
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.