Jypeli 4
The simple game programming library
Julkiset jäsenfunktiot | Staattiset julkiset jäsenfunktiot | Suojatut jäsenfunktiot | Ominaisuudet
PhysicsObject luokkareferenssi

Peliolio, joka noudattaa fysiikkamoottorin määräämiä fysiikan lakeja. Voidaan kuitenkin myös laittaa noudattamaan lakeja valikoidusti. Lisää...

Luokan PhysicsObject luokkakaavio
GameObject Destroyable Tagged Automobile Projectile Tank PlatformCharacter PlatformCharacter2 Bullet CannonBall Grenade ClusterGrenade

Lista kaikista jäsenistä.

Julkiset jäsenfunktiot

 PhysicsObject (double width, double height)
 Luo uuden fysiikkaolion.
 PhysicsObject (double width, double height, Shape shape)
 Luo uuden fysiikkaolion.
 PhysicsObject (Image image)
 Luo uuden fysiikkaolion. Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta.
 PhysicsObject (double width, double height, Shape shape, CollisionShapeQuality quality)
 Luo uuden fysiikkaolion asettaen laadun törmäyskappaleelle. Käytä tätä rakentajaa vain, jos törmäystunnistuksen laatu ei ole tyydyttävää.
 PhysicsObject (double width, double height, Shape shape, double maxDistanceBetweenVertices, double gridSpacing)
 Luo uuden fysiikkaolion antaen parametreja fysiikan laskentaan. Käytä tätä rakentajaa vain, jos on tarvetta kokeilla eri parametrien vaikutusta törmäyksen laatuun.
 PhysicsObject (RaySegment raySegment)
 Luo fysiikkaolion, jonka muotona on säde.
virtual void Push (Vector force)
 Työntää oliota.
virtual void Push (Vector force, TimeSpan time)
 Työntää oliota tietyn ajan tietyllä voimalla.
virtual void Hit (Vector impulse)
 Kohdistaa kappaleeseen impulssin. Tällä kappaleen saa nopeasti liikkeeseen.
virtual void ApplyTorque (double torque)
 Kohdistaa kappaleeseen vääntövoiman. Voiman suunta riippuu merkistä.
virtual void Stop ()
 Pysäyttää olion.
void StopHorizontal ()
 Pysäyttää olion liikkeen vaakasuunnassa.
void StopVertical ()
 Pysäyttää olion liikkeen pystysuunnassa.
override void Destroy ()
 Tuhoaa olion. Tuhottu olio poistuu pelistä.
override void Update (Time time)
override void Move (Vector movement)
 Siirtää oliota.

Staattiset julkiset jäsenfunktiot

static PhysicsObject CreateStaticObject (double width, double height)
 Tekee suorakulmaisen kappaleen, joka on staattinen (eli pysyy paikallaan).
static PhysicsObject CreateStaticObject (Image image)
 Tekee suorakulmaisen kappaleen, joka on staattinen (eli pysyy paikallaan). Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta.
static PhysicsObject CreateStaticObject (double width, double height, Shape shape)
 Tekee vapaamuotoisen kappaleen, joka on staattinen (eli pysyy paikallaan).
static PhysicsObject CreateStaticObject (double width, double height, Shape shape, CollisionShapeQuality quality)
 Tekee vapaamuotoisen kappaleen, joka on staattinen (eli pysyy paikallaan). Tällä rakentajalla voidaan määrittää myös törmäystarkistuksen laatu.
static PhysicsObject CreateStaticObject (double width, double height, Shape shape, double maxDistanceBetweenVertices, double gridSpacing)

Suojatut jäsenfunktiot

void MakeStatic ()
 Tekee oliosta staattisen. Staattinen olio ei liiku muiden olioiden törmäyksistä, vaan ainoastaan muuttamalla suoraan sen paikkaa tai nopeutta.
override void MoveToTarget ()

Ominaisuudet

Body Body [get, set]
 Fysiikkamoottorin käyttämä tietorakenne.
Ignorer CollisionIgnorer [get, set]
 Olio, jolla voi välttää oliota osumasta tiettyihin muihin olioihin.
int CollisionIgnoreGroup [get, set]
 Törmäysryhmä. Oliot jotka ovat samassa törmäysryhmässä menevät toistensa läpi. Jos ryhmä on nolla tai negatiivinen, sillä ei ole vaikutusta.
override Vector Position [get, set]
 Olion paikka koordinaatistossa. Käsittää sekä X- että Y-koordinaatin.
override Vector Size [get, set]
 Olion koko (x on leveys, y on korkeus).
override Angle Angle [get, set]
 Kulma, jossa olio on. Oliota voi pyörittää kulmaa vaihtamalla.
bool CanRotate [get, set]
 Jos false, olio ei voi pyöriä.
double Mass [get, set]
 Olion massa. Mitä suurempi massa, sitä suurempi voima tarvitaan olion liikuttamiseksi.
double MomentOfInertia [get, set]
 Olion hitausmomentti. Mitä suurempi hitausmomentti, sitä enemmän vääntöä tarvitaan olion pyörittämiseksi.
double StaticFriction [get, set]
 Lepokitka. Liikkeen alkamista vastustava voima, joka ilmenee kun olio yrittää lähteä liikkeelle toisen olion pinnalta (esim. laatikkoa yritetään työntää eteenpäin).
double KineticFriction [get, set]
 Liikekitka. Liikettä vastustava voima joka ilmenee kun kaksi oliota liikkuu toisiaan vasten (esim. laatikko liukuu maata pitkin). Arvot välillä 0.0 (ei kitkaa) ja 1.0 (täysi kitka).
double Restitution [get, set]
 Olion kimmoisuus. Arvo välillä 0.0-1.0. Arvolla 1.0 olio säilyttää kaiken vauhtinsa törmäyksessä. Mitä pienempi arvo, sitä enemmän olion vauhti hidastuu törmäyksessä.
Vector Velocity [get, set]
 Olion nopeus.
double AngularVelocity [get, set]
 Olion kulmanopeus.
Vector Acceleration [get, set]
 Olion kiihtyvyys.
double AngularAcceleration [get, set]
 Olion kulmakiihtyvyys.
override Shape Shape [get, set]
 Olion muoto.
double LinearDamping [get, set]
 Olion hidastuminen. Hidastaa olion vauhtia, vaikka se ei osuisi mihinkään. Vähän kuin väliaineen (esim. ilman tai veden) vastus. Oletusarvo on 1.0, jolloin hidastumista ei ole. Mitä pienempi arvo, sitä enemmän kappale hidastuu.
double AngularDamping [get, set]
 Olion pyörimisen hidastuminen.
override Brain Brain [get, set]
 Olion aivot. Ks. Brain
bool IgnoresExplosions [get, set]
 Jättääkö olio räjähdyksen paineaallon huomiotta.
bool IgnoresCollisionResponse [get, set]
 Jättääkö olio törmäyksen huomioimatta. Jos tosi, törmäyksestä tulee tapahtuma, mutta itse törmäystä ei tapahdu.
bool IgnoresGravity [get, set]
 Jättääkö olio painovoiman huomioimatta.
bool IgnoresPhysicsLogics [get, set]
 Jättääkö olio kaikki fysiikkalogiikat (ks. AddPhysicsLogic) huomiotta. Vaikuttaa esim. painovoimaan, mutta ei törmäyksiin.

Yksityiskohtainen selite

Peliolio, joka noudattaa fysiikkamoottorin määräämiä fysiikan lakeja. Voidaan kuitenkin myös laittaa noudattamaan lakeja valikoidusti.


Rakentajien & purkajien dokumentaatio

PhysicsObject ( double  width,
double  height 
) [inline]

Luo uuden fysiikkaolion.

Parametrit:
widthLeveys.
heightKorkeus.
PhysicsObject ( double  width,
double  height,
Shape  shape 
) [inline]

Luo uuden fysiikkaolion.

Parametrit:
widthLeveys.
heightKorkeus.
shapeMuoto.
PhysicsObject ( Image  image) [inline]

Luo uuden fysiikkaolion. Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta.

Parametrit:
imageKuva
PhysicsObject ( double  width,
double  height,
Shape  shape,
CollisionShapeQuality  quality 
) [inline]

Luo uuden fysiikkaolion asettaen laadun törmäyskappaleelle. Käytä tätä rakentajaa vain, jos törmäystunnistuksen laatu ei ole tyydyttävää.

Mitä parempi laatu, sen tarkempi törmäysten tunnistus mutta toisaalta sen hitaampi laskenta. Jos laatu on liian huono, kappaleet saattavat mennä toistensa läpi.

Sopiva arvo laadulle riippuu tilanteesta. Jos tarvitsee vain tietää, milloin kappale törmää johonkin toiseen, riitää huonompikin laatu. Jos taas esimerkiksi halutaan, että kappaleita voi pinota päällekkäin, tarvitaan parempaa laatua. Toisaalta, jos peli pyörii liian hitaasti, voi olla parempi heikentää joidenkin kappaleiden laatua. Sopiva arvo löytyy kokeilemalla.

Parametrit:
widthLeveys.
heightKorkeus.
shapeMuoto.
qualityTörmäystunnistuksen laatu.

PhysicsObject laatikko = new PhysicsObject( 20.0, 30.0, Shape.Rectangle, CollisionShapeQuality.FromValue(0.6) );

PhysicsObject ( double  width,
double  height,
Shape  shape,
double  maxDistanceBetweenVertices,
double  gridSpacing 
) [inline]

Luo uuden fysiikkaolion antaen parametreja fysiikan laskentaan. Käytä tätä rakentajaa vain, jos on tarvetta kokeilla eri parametrien vaikutusta törmäyksen laatuun.

Parametrit:
widthLeveys.
heightKorkeus.
shapeMuoto.
maxDistanceBetweenVerticesSuurin sallittu etäisyys fysiikkakuvion verteksien välillä.
gridSpacingKuinka pientä ruudukkoa fysiikkakuvion laskennassa käytetään. Ei ole käytössä ympyrälle.

Sekä maxDistanceBetweenVertices että gridSpacing -parametrit vaikuttavat fysiikan laskentaan siten, että pienemmällä arvolla saadaan tarkempi laskenta, suuremmalla nopeampi. Oikea arvo on siis kompromissi fysiikan tarkkuuden ja nopean laskennan välillä.

Suositeltavat (ei välttämättä parhaat mahdolliset) arvot olisivat seuraavat: GridSpacing korkeintaan puolet kuvion kahden kulmapisteen etäisyydestä (esim. neliölle puolet etäisyydestä ja maxDistanceBetweenVertices vastaavasti korkeintaan kolmannes.

Sopivat arvot löytynevät parhaiten kokeilemalla.

PhysicsObject ( RaySegment  raySegment) [inline]

Luo fysiikkaolion, jonka muotona on säde.

Parametrit:
raySegmentSäde.

Jäsenfunktioiden dokumentaatio

virtual void ApplyTorque ( double  torque) [inline, virtual]

Kohdistaa kappaleeseen vääntövoiman. Voiman suunta riippuu merkistä.

Parametrit:
torqueVääntövoima.
static PhysicsObject CreateStaticObject ( double  width,
double  height 
) [inline, static]

Tekee suorakulmaisen kappaleen, joka on staattinen (eli pysyy paikallaan).

Parametrit:
widthKappaleen leveys
heightKappaleen korkeus
Palauttaa:
Fysiikkaolio
static PhysicsObject CreateStaticObject ( double  width,
double  height,
Shape  shape,
CollisionShapeQuality  quality 
) [inline, static]

Tekee vapaamuotoisen kappaleen, joka on staattinen (eli pysyy paikallaan). Tällä rakentajalla voidaan määrittää myös törmäystarkistuksen laatu.

Parametrit:
widthKappaleen leveys
heightKappaleen korkeus
shapeKappaleen muoto
qualityTörmäystarkistuksen laatu. CollisionShapeQuality.Best = paras (hitain), CollisionShapeQuality.Worst = huonoin (nopein)
Palauttaa:
Fysiikkaolio
static PhysicsObject CreateStaticObject ( Image  image) [inline, static]

Tekee suorakulmaisen kappaleen, joka on staattinen (eli pysyy paikallaan). Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta.

Parametrit:
widthKappaleen leveys
heightKappaleen korkeus
Palauttaa:
Fysiikkaolio
static PhysicsObject CreateStaticObject ( double  width,
double  height,
Shape  shape 
) [inline, static]

Tekee vapaamuotoisen kappaleen, joka on staattinen (eli pysyy paikallaan).

Parametrit:
widthKappaleen leveys
heightKappaleen korkeus
shapeKappaleen muoto
Palauttaa:
Fysiikkaolio
override void Destroy ( ) [inline, virtual]

Tuhoaa olion. Tuhottu olio poistuu pelistä.

Uudelleentoteuttaa luokan GameObject.

Uudelleentoteutetaan luokissa PlatformCharacter ja Tank.

virtual void Hit ( Vector  impulse) [inline, virtual]

Kohdistaa kappaleeseen impulssin. Tällä kappaleen saa nopeasti liikkeeseen.

void MakeStatic ( ) [inline, protected]

Tekee oliosta staattisen. Staattinen olio ei liiku muiden olioiden törmäyksistä, vaan ainoastaan muuttamalla suoraan sen paikkaa tai nopeutta.

override void Move ( Vector  movement) [inline, virtual]

Siirtää oliota.

Parametrit:
movementVektori, joka määrittää kuinka paljon siirretään.

Uudelleentoteuttaa luokan GameObject.

Uudelleentoteutetaan luokissa PlatformCharacter ja PlatformCharacter2.

virtual void Push ( Vector  force) [inline, virtual]

Työntää oliota.

Parametrit:
forceVoima, jolla oliota työnnetään.
virtual void Push ( Vector  force,
TimeSpan  time 
) [inline, virtual]

Työntää oliota tietyn ajan tietyllä voimalla.

Parametrit:
forceVoima, jolla oliota työnnetään sekunnissa.
timeAika, kuinka kauan voimaa pidetään yllä.
virtual void Stop ( ) [inline, virtual]

Pysäyttää olion.

void StopHorizontal ( ) [inline]

Pysäyttää olion liikkeen vaakasuunnassa.

void StopVertical ( ) [inline]

Pysäyttää olion liikkeen pystysuunnassa.

override void Update ( Time  time) [inline, virtual]

Peliolion päivitys. Tätä kutsutaan, kun IsUpdated-ominaisuuden arvoksi on asetettu true ja olio on lisätty peliin. IsUpdated

Parametrit:
timePeliaika.

Uudelleentoteuttaa luokan GameObject.

Uudelleentoteutetaan luokissa Automobile, PlatformCharacter, PlatformCharacter2 ja Grenade.


Ominaisuuksien dokumentaatio

Vector Acceleration [get, set]

Olion kiihtyvyys.

Uudelleentoteutetaan luokissa Automobile ja PlatformCharacter2.

override Angle Angle [get, set]

Kulma, jossa olio on. Oliota voi pyörittää kulmaa vaihtamalla.

Uudelleentoteuttaa luokan GameObject.

double AngularAcceleration [get, set]

Olion kulmakiihtyvyys.

double AngularDamping [get, set]

Olion pyörimisen hidastuminen.

LinearDamping

double AngularVelocity [get, set]

Olion kulmanopeus.

Body Body [get, set]

Fysiikkamoottorin käyttämä tietorakenne.

override Brain Brain [get, set]

Olion aivot. Ks. Brain

Uudelleentoteuttaa luokan GameObject.

bool CanRotate [get, set]

Jos false, olio ei voi pyöriä.

int CollisionIgnoreGroup [get, set]

Törmäysryhmä. Oliot jotka ovat samassa törmäysryhmässä menevät toistensa läpi. Jos ryhmä on nolla tai negatiivinen, sillä ei ole vaikutusta.

Ignorer CollisionIgnorer [get, set]

Olio, jolla voi välttää oliota osumasta tiettyihin muihin olioihin.

bool IgnoresCollisionResponse [get, set]

Jättääkö olio törmäyksen huomioimatta. Jos tosi, törmäyksestä tulee tapahtuma, mutta itse törmäystä ei tapahdu.

bool IgnoresExplosions [get, set]

Jättääkö olio räjähdyksen paineaallon huomiotta.

bool IgnoresGravity [get, set]

Jättääkö olio painovoiman huomioimatta.

bool IgnoresPhysicsLogics [get, set]

Jättääkö olio kaikki fysiikkalogiikat (ks. AddPhysicsLogic) huomiotta. Vaikuttaa esim. painovoimaan, mutta ei törmäyksiin.

double KineticFriction [get, set]

Liikekitka. Liikettä vastustava voima joka ilmenee kun kaksi oliota liikkuu toisiaan vasten (esim. laatikko liukuu maata pitkin). Arvot välillä 0.0 (ei kitkaa) ja 1.0 (täysi kitka).

double LinearDamping [get, set]

Olion hidastuminen. Hidastaa olion vauhtia, vaikka se ei osuisi mihinkään. Vähän kuin väliaineen (esim. ilman tai veden) vastus. Oletusarvo on 1.0, jolloin hidastumista ei ole. Mitä pienempi arvo, sitä enemmän kappale hidastuu.

Yleensä kannattaa käyttää arvoja, jotka ovat lähellä ykköstä, esim. 0.95.

double Mass [get, set]

Olion massa. Mitä suurempi massa, sitä suurempi voima tarvitaan olion liikuttamiseksi.

Massan asettaminen muuttaa myös hitausmomenttia (MomentOfInertia).

double MomentOfInertia [get, set]

Olion hitausmomentti. Mitä suurempi hitausmomentti, sitä enemmän vääntöä tarvitaan olion pyörittämiseksi.

override Vector Position [get, set]

Olion paikka koordinaatistossa. Käsittää sekä X- että Y-koordinaatin.

Uudelleentoteuttaa luokan GameObject.

double Restitution [get, set]

Olion kimmoisuus. Arvo välillä 0.0-1.0. Arvolla 1.0 olio säilyttää kaiken vauhtinsa törmäyksessä. Mitä pienempi arvo, sitä enemmän olion vauhti hidastuu törmäyksessä.

override Shape Shape [get, set]

Olion muoto.

Uudelleentoteuttaa luokan GameObject.

override Vector Size [get, set]

Olion koko (x on leveys, y on korkeus).

Uudelleentoteuttaa luokan GameObject.

Uudelleentoteutetaan luokissa PlatformCharacter ja Tank.

double StaticFriction [get, set]

Lepokitka. Liikkeen alkamista vastustava voima, joka ilmenee kun olio yrittää lähteä liikkeelle toisen olion pinnalta (esim. laatikkoa yritetään työntää eteenpäin).

Vector Velocity [get, set]

Olion nopeus.


Dokumentaatio tälle luokalle luotiin seuraavasta tiedostosta:
 Kaikki Luokat Nimiavaruudet Funktiot Muuttujat Luettelotyypit Ominaisuudet Tapahtumat