Jypeli 4
The simple game programming library
|
Peliolio, joka noudattaa fysiikkamoottorin määräämiä fysiikan lakeja. Voidaan kuitenkin myös laittaa noudattamaan lakeja valikoidusti. Lisää...
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. |
Peliolio, joka noudattaa fysiikkamoottorin määräämiä fysiikan lakeja. Voidaan kuitenkin myös laittaa noudattamaan lakeja valikoidusti.
PhysicsObject | ( | double | width, |
double | height | ||
) | [inline] |
Luo uuden fysiikkaolion.
width | Leveys. |
height | Korkeus. |
PhysicsObject | ( | double | width, |
double | height, | ||
Shape | shape | ||
) | [inline] |
Luo uuden fysiikkaolion.
width | Leveys. |
height | Korkeus. |
shape | Muoto. |
PhysicsObject | ( | Image | image | ) | [inline] |
Luo uuden fysiikkaolion. Kappaleen koko ja ulkonäkö ladataan parametrina annetusta kuvasta.
image | Kuva |
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.
width | Leveys. |
height | Korkeus. |
shape | Muoto. |
quality | Tö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.
width | Leveys. |
height | Korkeus. |
shape | Muoto. |
maxDistanceBetweenVertices | Suurin sallittu etäisyys fysiikkakuvion verteksien välillä. |
gridSpacing | Kuinka 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.
raySegment | Säde. |
virtual void ApplyTorque | ( | double | torque | ) | [inline, virtual] |
Kohdistaa kappaleeseen vääntövoiman. Voiman suunta riippuu merkistä.
torque | Vääntövoima. |
static PhysicsObject CreateStaticObject | ( | double | width, |
double | height | ||
) | [inline, static] |
Tekee suorakulmaisen kappaleen, joka on staattinen (eli pysyy paikallaan).
width | Kappaleen leveys |
height | Kappaleen korkeus |
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.
width | Kappaleen leveys |
height | Kappaleen korkeus |
shape | Kappaleen muoto |
quality | Törmäystarkistuksen laatu. CollisionShapeQuality.Best = paras (hitain), CollisionShapeQuality.Worst = huonoin (nopein) |
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.
width | Kappaleen leveys |
height | Kappaleen korkeus |
static PhysicsObject CreateStaticObject | ( | double | width, |
double | height, | ||
Shape | shape | ||
) | [inline, static] |
Tekee vapaamuotoisen kappaleen, joka on staattinen (eli pysyy paikallaan).
width | Kappaleen leveys |
height | Kappaleen korkeus |
shape | Kappaleen muoto |
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.
movement | Vektori, 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.
force | Voima, jolla oliota työnnetään. |
virtual void Push | ( | Vector | force, |
TimeSpan | time | ||
) | [inline, virtual] |
Työntää oliota tietyn ajan tietyllä voimalla.
force | Voima, jolla oliota työnnetään sekunnissa. |
time | Aika, 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
time | Peliaika. |
Uudelleentoteuttaa luokan GameObject.
Uudelleentoteutetaan luokissa Automobile, PlatformCharacter, PlatformCharacter2 ja Grenade.
Vector Acceleration [get, set] |
Olion kiihtyvyys.
Uudelleentoteutetaan luokissa Automobile ja PlatformCharacter2.
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.
double AngularVelocity [get, set] |
Olion kulmanopeus.
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ä.
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.