8using System.Collections.Generic;
23 private struct Appearance
29 private static Dictionary<PhysicsObject, Appearance> originalAppearances =
new Dictionary<PhysicsObject, Appearance>();
33 if (!originalAppearances.ContainsKey(o))
35 Appearance original = originalAppearances[o];
36 o.
Color = original.Color;
38 originalAppearances.Remove(o);
56 if (! originalAppearances.ContainsKey(target))
97 set {
Turn( value ); }
135 return base.CollisionIgnorer;
139 base.CollisionIgnorer = value;
148 get {
return base.CollisionIgnoreGroup; }
151 base.CollisionIgnoreGroup = value;
166 if (
weapon == value )
return;
267 : base(width, height, shape)
316 if ( physicsGame ==
null )
throw new InvalidOperationException(
"Cannot have a platform character in non-physics game" );
334 if (physicsGame ==
null)
throw new InvalidOperationException(
"Cannot have a platform character in non-physics game");
403 public void Walk(
double horizontalVelocity)
413 this.
X += horizontalVelocity *
lastDt;
490 double lowestPoint = this.
Bottom;
492 for (
int i = 0; i < this.collisionHelpers.Length; i++)
498 && this.
X + speedDirection * (this.
Width / 2) < lastPlatform.
Right
507 if (platform ==
null)
return true;
510 if (p ==
null)
return true;
561 Vector leftTopPoint = leftProj * uTargetX + platform.
Height / 2 * uTargetY;
562 Vector rightTopPoint = rightProj * uTargetX + platform.
Height / 2 * uTargetY;
564 return platform.
Position.
Y + Math.Max( leftTopPoint.
Y, rightTopPoint.
Y );
574 if (target ==
null || target.
IsDestroyed ||
this.IgnoresCollisionWith(target))
return false;
577 double epsilon =
Width / 6;
580 return (target.
Position.
Y <=
this.Position.Y
581 && (
this.Bottom - targetTop) < yTolerance
582 && (target.
Left + epsilon) <
this.Right
583 &&
this.Left < (target.
Right - epsilon));
613 [EditorBrowsable(EditorBrowsableState.Never)]
Sarja kuvia, jotka vaihtuvat halutulla nopeudella. Yksi animaatio koostuu yhdestä tai useammasta kuva...
Action Played
Tapahtuma, joka tapahtuu kun animaatio on suoritettu.
int FrameCount
Ruutujen määrä.
void Start()
Käynnistää animaation alusta.
GameObject GetObjectAt(Vector position)
Palauttaa peliolion, joka on annetussa paikassa. Jos paikassa ei ole mitään pelioliota,...
void Add(Light light)
Lisää valon peliin. Nykyisellään valoja voi olla ainoastaan yksi kappale. Toistaiseksi ei tuettu Wind...
List< GameObject > GetObjectsAt(Vector position)
Palauttaa listan peliolioista, jotka ovat annetussa paikassa. Jos paikassa ei ole mitään pelioliota,...
static Game Instance
Käynnissä olevan pelin pääolio.
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
override Vector?? Position
Action arrivedAction
Kun olio saapuu kohteeseen
Vector TextureWrapSize
Määrittää kuinka moneen kertaan kuva piirretään. Esimerkiksi (3.0, 2.0) piirtää kuvan 3 kerta...
GameObject(double width, double height)
Alustaa uuden peliolion.
double moveSpeed
Liikkumisnopeus kohdetta kohti
override void Destroy()
Tuhoaa olion. Tuhottu olio poistuu pelistä.
void Remove(IGameObject childObject)
Poistaa lapsiolion. Jos haluat tuhota olion, kutsu mielummin olion Destroy-metodia.
bool IsVisible
Piirretäänkö oliota ruudulle.
override Animation Animation
Animaatio. Voi olla null, jolloin piirretään vain väri.
Vector? moveTarget
Piste johon liikutaan
void Add(IGameObject childObject)
Lisää annetun peliolion tämän olion lapseksi. Lapsiolio liikkuu tämän olion mukana.
Timer moveTimer
Ajastin joka liikuttaa kappaletta kohti kohdepistettä
virtual Color Color
Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
double X
Olion paikan X-koordinaatti.
double Top
Olion yläreunan y-koordinaatti.
double Height
Olion korkeus (Y-suunnassa, korkeimmassa kohdassa).
double Bottom
Olion alareunan y-koordinaatti.
Action AddedToGame
Tapahtuu, kun olio lisätään peliin.
double Left
Olion vasemman reunan x-koordinaatti.
double Y
Olion paikan Y-koordinaatti.
bool IsDestroyed
Onko olio tuhottu.
double Width
Olion leveys (X-suunnassa, leveimmässä kohdassa).
double Right
Olion oikean reunan x-koordinaatti.
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,...
Base class for Collision Ignorers to impliment.
Kantaluokka fysiikkapeleille.
void RemoveCollisionHandlers(PhysicsObject obj=null, PhysicsObject target=null, object tag=null, Delegate handler=null)
Poistaa kaikki ehdot täyttävät törmäyksenkäsittelijät.
void Remove(IAxleJoint j)
Poistaa liitoksen pelistä.
void Add(IAxleJoint j)
Lisää liitoksen peliin.
void RemoveProtectedCollisionHandlers(PhysicsObject obj=null, PhysicsObject target=null, object tag=null, Delegate handler=null)
Poistaa kaikki ehdot täyttävät törmäyksenkäsittelijät. Jypelin sisäiseen käyttöön!
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
bool IgnoresExplosions
Jättääkö räjähdysten paineaallon huomioimatta
virtual int? CollisionIgnoreGroup
Törmäysryhmä. Oliot jotka ovat samassa törmäysryhmässä menevät toistensa läpi. Jos ryhmä on nolla tai...
double KineticFriction
Liikekitka (hidastaa kun olio on jo liikkeessä). Ks. StaticFriction (lepokitka)
bool IgnoresGravity
Jättääkö painovoiman huomiotta.
override Vector?? Position
bool CanRotate
Jos false, olio ei voi pyöriä.
void StopHorizontal()
Pysäyttää olion liikkeen vaakasuunnassa.
double Mass
Olion massa (paino). Mitä enemmän massaa, sitä enemmän voimaa tarvitaan saamaan olio liikkeelle / pys...
virtual void Hit(Vector impulse)
Kohdistaa kappaleeseen impulssin. Tällä kappaleen saa nopeasti liikkeeseen.
void StopVertical()
Pysäyttää olion liikkeen pystysuunnassa.
double LinearDamping
Nopeuskerroin. Pienempi arvo kuin 1 (esim. 0.998) toimii kuten kitka / ilmanvastus.
PhysicsObject(double width, double height, Shape shape, double x=0.0, double y=0.0)
Alustaa fysiikkaolion käyttöön.
bool IgnoresCollisionWith(PhysicsObject target)
Tarkistaa, jätetäänkö törmäämättä toiseen olioon. Ts. tarkistaa, onko joko tällä oliolla tai toisella...
override void Stop()
Pysäyttää olion.
bool IgnoresCollisionResponse
Jättääkö törmäykset huomiotta.
double Restitution
Kimmoisuuskerroin (0 = ei kimmoisa, 1 = täysin kimmoisa, yli 1 = saa energiaa tyhjästä)
Ajastin, joka voidaan asettaa laukaisemaan tapahtumia tietyin väliajoin.
static void SingleShot(double seconds, Action onTimeout)
Kutsuu aliohjelmaa onTimeout annetun ajan kuluttua. Ajastin luodaan automaattisesti.
double Interval
Aika sekunneissa, jonka välein TimeOut tapahtuu.
void Stop()
Pysäyttää ajastimen ja nollaa sen tilan.
Action Timeout
Tapahtuu väliajoin.
void Start()
Käynnistää ajastimen.
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
static readonly Angle StraightAngle
Oikokulma (180 astetta).
static Angle Supplement(Angle a)
Laskee suplementtikulman (180 asteen kulman toinen puoli)
static readonly Angle Zero
Nollakulma.
double Radians
Palauttaa tai asettaa kulman radiaaneina.
static readonly Color White
Valkoinen.
static readonly Color Yellow
Keltainen.
static readonly Color Red
Punainen.
static Direction Right
Suunta oikealle.
Vector GetVector()
Palauttaa suunnan yksikkövektorina.
static Direction Left
Suunta vasemmalle.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
TimeSpan SinceLastUpdate
Aika joka on kulunut viime päivityksestä.
Vector LeftNormal
Vasen normaali.
double Y
Vektorin Y-komponentti
static Vector FromAngle(Angle angle)
Luo vektorin kulman perusteella yksikköpituudella.
double X
Vektorin X-komponentti.
Angle Angle
Kulma radiaaneina.
static readonly Vector UnitY
Pystysuuntainen yksikkövektori (pituus 1, suunta ylös).
static readonly Vector UnitX
Vaakasuuntainen yksikkövektori (pituus 1, suunta oikealle).
double ScalarProjection(Vector vector)
Skalaariprojektio annettuun vektoriin https://en.wikipedia.org/wiki/Scalar_projection
double Magnitude
Vektorin pituus.
static Vector FromLengthAndAngle(double length, double angle)
Luo vektorin pituuden ja kulman perusteella.