31 using System.Collections.Generic;
32 using System.ComponentModel;
43 #if !XBOX && !WINDOWS_PHONE 47 public partial class GameObject : GameObjects.
GameObjectBase, IGameObjectInternal
95 InitDimensions( width, height, shape );
110 InitAppearance( animation );
128 private void InitListeners()
139 [EditorBrowsable( EditorBrowsableState.Never )]
143 UpdateChildren( time );
144 if ( _layoutNeedsRefreshing )
147 _layoutNeedsRefreshing =
false;
149 if ( oscillators != null )
150 oscillators.
Update( time );
160 return Game.
Instance.
GetFirstObject(obstacle => obstacle !=
this && obstacle != obj && !(obstacle is
Widget) && obstacle.IsBlocking(
this.Position, obj.Position)) == null;
171 return Game.
Instance.
GetFirstObject( obstacle => obstacle !=
this && obstacle != obj && isObstacle( obstacle ) && obstacle.IsBlocking(
this.Position, obj.Position ) ) == null;
182 return SeesObject( obj, o => o.Tag == obstacleTag );
192 return Game.
Instance.
GetFirstObject( obstacle => obstacle !=
this && !( obstacle is
Widget ) && obstacle.IsBlocking(
this.Position, targetPosition ) ) == null;
203 return Game.
Instance.
GetFirstObject( obstacle => obstacle !=
this && isObstacle( obstacle ) && obstacle.IsBlocking(
this.Position, targetPosition ) ) == null;
214 return SeesTarget( targetPosition, o => o.Tag == obstacleTag );
226 Vector normal = (pos2 - pos1).Normalize();
231 if (ep < p1p || ep > p2p)
246 if (fadeTimer != null && fadeTimer.Enabled)
251 double timeLeft = seconds;
252 double dt = GetPrecision(seconds);
261 fadeTimer =
new Timer();
262 fadeTimer.Interval = dt;
263 fadeTimer.Timeout += delegate
265 byte r = (byte)( original.
RedComponent + rd * counter * dt / seconds );
266 byte g = (byte)( original.
GreenComponent + gd * counter * dt / seconds );
267 byte b = (byte)( original.
BlueComponent + bd * counter * dt / seconds );
268 byte a = (byte)( original.
AlphaComponent + ad * counter * dt / seconds );
272 fadeTimer.Start( (
int)Math.Ceiling( seconds / dt ) );
275 private double GetPrecision(
double seconds)
278 while (dt > seconds) dt /= 10;
byte BlueComponent
Sininen värikomponentti välillä 0-255
Color Color
Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
GameObject GetFirstObject(Predicate< GameObject > condition)
Palauttaa ensimmäisen peliolion joka toteuttaa ehdon (null jos mikään ei toteuta).
GameObject(ILayout layout)
Alustaa widgetin.
byte GreenComponent
Vihreä värikomponentti välillä 0-255
GameObject(double width, double height)
Alustaa uuden peliolion.
Rajapinta asettelijalle. Asettelija asettelee widgetin lapsioliot siten, että ne mahtuvat widgetin si...
bool SeesTarget(Vector targetPosition, Predicate< GameObject > isObstacle)
Näkeekö olio paikkaan.
List< Listener > AssociatedListeners
TimeSpan MaximumLifetime
Olion suurin mahdollinen elinaika. Kun Lifetime on suurempi kuin tämä, olio kuolee.
bool SeesTarget(Vector targetPosition, object obstacleTag)
Näkeekö olio paikkaan.
void InitLayout(double width, double height)
void Update(Time time)
Lisää ja poistaa jonossa olevat elementit sekä kutsuu niiden Update-metodia.
static readonly Rectangle Rectangle
Suorakulmio.
byte RedComponent
Punainen värikomponentti välillä 0-255
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
GameObject(Animation animation)
Alustaa uuden peliolion. Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta...
double ScalarProjection(Vector unitVector)
Peliluokka reaaliaikaisille peleille.
bool SeesObject(GameObject obj)
Näkeekö olio toisen.
override void Update(Time time)
Peliolion päivitys. Tätä kutsutaan, kun IsUpdated-ominaisuuden arvoksi on asetettu true ja olio on li...
Kaikille peliolioille yhteinen kantaluokka
void FadeColorTo(Color targetColor, double seconds)
Muuttaa olion väriä toiseen hitaasti liukumalla.
bool SeesObject(GameObject obj, Predicate< GameObject > isObstacle)
Näkeekö olio toisen.
Ajastin, joka voidaan asettaa laukaisemaan tapahtumia tietyin väliajoin.
byte AlphaComponent
Läpinäkymättömyys välillä 0-255
bool IsBlocking(Vector pos1, Vector pos2)
Onko olio kahden paikan välissä.
override void Destroy()
Tuhoaa olion. Tuhottu olio poistuu pelistä.
Sarja kuvia, jotka vaihtuvat halutulla nopeudella. Yksi animaatio koostuu yhdestä tai useammasta kuva...
GameObject(double width, double height, Shape shape)
Alustaa uuden peliolion.
bool SeesTarget(Vector targetPosition)
Näkeekö olio paikkaan.
double Width
Olion leveys (X-suunnassa, leveimmässä kohdassa).
double Width
Animaation leveys. Nolla, jos animaatiossa ei ole yhtään ruutua.
bool SeesObject(GameObject obj, object obstacleTag)
Näkeekö olio toisen.
double Height
Animaation korkeus. Nolla, jos animaatiossa ei ole yhtään ruutua.
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
Vector AbsolutePosition
Olion absoluuttinen paikka pelimaailmassa. Jos olio ei ole minkään toisen peliolion lapsiolio...
Vector RightNormal
Oikea normaali.
void RefreshLayout()
Päivittää lapsiolioiden paikat ja koot, jos widgetille on asetettu asettelija. Tätä metodia EI yleens...
double Height
Olion korkeus (Y-suunnassa, korkeimmassa kohdassa).