Huom! Nämä wikisivut ovat osittain vielä työn alla, osa sisällöstä saattaa olla puutteellista. Ongelmakohtien viereen voit jättää kommentin, yliopiston käyttäjät myös pystyvät (ja saavat) muokata sivuja.
Jypelin käyttöohjeet » Millaisia olioita on olemassa?
Tässä on esitelty tarkemmin muutama tärkeä olio pelin tekemisen kannalta. Muitakin olioita on tietysti olemassa.
1. GameObject
GameObject
on peliolio, joka ei noudata fysiikan lakeja.
Esimerkki peliolion lisäämisestä:
GameObject kissa = new GameObject(40, 20);
kissa.Shape = Shape.Rectangle;
Add(kissa);
- Esimerkissä luotiin olio nimeltä kissa, jonka leveys on 40 ja korkeus 20.
- Asetetaan kissan muodoksi suorakulmio. Muoto voisi tietenkin olla myös muu kuin suorakulmio.
- Lopuksi kissa lisättiin kenttään.
1.1 Tärkeimmät ominaisuudet
Angle | Kulma, jolla olioita voi kääntää. |
Animation | Animoitu tekstuuri. |
Brain | Aivot, jotka oliolle voi asettaa. |
Color | Olion väri, jos tekstuuria ei ole käytössä tai tekstuuri on (osittain) läpinäkyvä. |
Image | Olion tekstuuri. |
IsVisible | Onko olio näkyvä vai ei. |
Lifetime | Elinaika. |
MaximumLifetime | Maksimielinaika. |
Position | Sijainti koordinaateissa. |
Size | Olion koko. |
Shape | Olion muoto. |
Tag | Vapaasti asetettava muuttuja. |
X | Sijainti x-koordinaatissa. |
Y | Sijainti y-koordinaatissa. |
1.2 Tärkeimmät metodit
Move(liikevektori) | Siirtää oliota eteenpäin annetun vektorin verran. |
MoveTo(paikkavektori, nopeus) | Aloittaa olion siirtämisen haluttuun paikkaan tietyllä nopeudella. Jos välissä on esimerkiksi seinä tai hitaampaa maastoa, olion nopeus voi olla vähemmän kuin sille annettu nopeus. |
Destroy() | Tuhoaa olion. |
2. PhysicsObject
PhysicsObject on GameObjectin perillinen, joka noudattaa fysiikan lakeja, kuten painovoimaa ja törmäilee muihin fysiikkaa noudattaviin olioihin.
Huom!! PhysicsObjectilla on lisäksi samat ominaisuudet, metodit ja tapahtumat kuin GameObjectilla .
Esimerkki fysiikkaolion lisäämisestä:
PhysicsObject koira = new PhysicsObject(200, 40);
koira.Shape = Shape.Rectangle;
koira.Mass = 15.0;
Add(koira);
- Esimerkissä luotiin aluksi koira, jonka leveys on 200 ja korkeus 40.
- Asetettiin koiran muoto suorakulmioksi.
- Annettiin koiralle massaksi 15. Katso Fysiikan ilmiöt, Massa.
- Lopuksi koira lisättiin kenttään.
2.1 Tärkeimmät ominaisuudet
AngularDamping | Pyörimisliikkeen hidastuminen |
CanRotate | Voiko kappale pyöriä |
IgnoresGravity | Vaikuttaako painovoima |
IgnoresPhysicsLogics | Vaikuttaako fysiikka |
IgnoresCollisionResponse | Voiko kappale törmätä |
IgnoresExplosions | Vaikuttaako räjähdysten paineaalto |
KineticFriction | 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). |
LinearDamping | Liikkeen 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. |
Mass | Olion massa. Kuinka painava olio on. |
MaxVelocity | Suurin nopeus, jonka olio voi saavuttaa. |
MomentOfInertia | Olion hitausmomentti. Mitä suurempi hitausmomentti, sitä enemmän vääntöä tarvitaan olion pyörittämiseksi. Jos haluat, että olio ei pyöri lainkaan, muokkaa CanRotate -kentän arvoa. |
Restitution | Olion kimmoisuus. |
StaticFriction | Lepokitka. Liikkeen alkamista vastustava voima, joka ilmenee kun olio yrittää lähteä liikkeelle toisen olion pinnalta (esim. laatikkoa yritetään työntää eteenpäin). |
Velocity | Olion nopeus. |
Taitaa olla virhe kohdassa LinearDamping: Oletusarvo on todellisuudessa 0.0. Mitä suurempi arvo, sitä enemmän kappale hidastuu. Arvo voi myös olla yli 1.0.
—2.2 Tärkeimmät metodit
Hit() | Kohdistaa olioon impulssin, joka saa olion nopeasti liikkeeseen. |
MakeOneWay() | Olion läpi voi mennä tietystä suunnasta. Erityisen kätevä tasohyppelypeleissä. |
Push() | Työntää oliota annetun voimavektorin mukaisesti. |
Stop() | Pysäyttää olion. |
StopHorizontal() | Pysäyttää olion vaakasuunnassa. |
StopVertical() | Pysäyttää olion pystysuunnassa. |
2.3 Törmäyksistä
3. PlatformCharacter
Tasohyppelyhahmo eli PlatformCharacter on PhysicsObjectin perillinen, joka voi lisäksi helposti esimerkiksi kävellä pinnoilla ja hyppiä.
PlatformCharacterilla on lisäksi samat ominaisuudet, metodit ja tapahtumat kuin PhysicsObjectilla (ja siten myös GameObjectilla).
PlatformCharacter rotta = new PlatformCharacter(200, 50);
Add(rotta);
3.1 Tärkeimmät ominaisuudet
CanMoveOnAir | Voiko liikkua ilmassa |
FacingDirection | Hahmon rintamasuunta |
AnimFall | Animaatio tai kuva pudotessa (suunta oikealle) |
AnimIdle | Animaatio tai kuva paikallaan ollessa (suunta oikealle) |
AnimJump | Animaatio tai kuva hypätessä (suunta oikealle) |
AnimWalk | Animaatio tai kuva kävellessä (suunta oikealle) |
Weapon | Hahmon ase |
Animaatioita tai kuvia asetettaessa riittää asettaa oikealle osoittava kuva tai animaatio. Jypeli osaa automaattisesti kääntää sen, kun hahmo kääntyy vasemmalle.
3.2 Tärkeimmät metodit
Nimi | Parametrit | Metodin selitys |
---|---|---|
ForceJump | double nopeus | Hyppää, vaikka olio olisi jo ilmassa. |
Jump | double nopeus | Olio hyppää. Ottaa huomioon mm. onko olio jo ilmassa, jolloin ei hypätä uudestaan. Parametrina otetaan desimaalilukuna vastaan nopeus, jolla olio hyppää. |
Walk | double vaakanopeus | Olio kävelee. Mahdollisimman luonnollisen näköinen kävelyyn tarkoitettu metodi. Parametrina desimaaliluku, jolla ilmaistaan kävelyn nopeus vaakasuunnassa. Plusmerkkinen luku tarkoittaa oikealle päin kävelyä, miinusmerkkinen vasemmalle. |
4. PlatformCharacter2
PlatformCharacter2 on myös tasohyppelyhahmo, mutta se käyttäytyy hieman eri tavalla kuin PlatformCharacter. Pähkinänkuoressa PlatformCharacter2
käyttää liikkumiseen kiihtyvyyttä (Acceleration
) ja maksiminopeutta (MaxVelocity
).
4.1 Tärkeimmät ominaisuudet (eri kuin PlatformCharacterilla)
Acceleration | Hahmon kiihtyvyys |
MaxVelocity | Suurin nopeus, jonka hahmo voi saavuttaa |
4.2 Tärkeimmät ominaisuudet (samat kuin PlatformCharacterilla)
CanMoveOnAir | Voiko liikkua ilmassa |
FacingDirection | Hahmon rintamasuunta |
LeftIdleAnimation | Animaatio paikallaollessa vasemmalle |
LeftWalkingAnimation | Vasemmalle kävelyn animaatio |
RightIdleAnimation | Animaatio paikallaollessa oikealle |
RightWalkingAnimation | Oikealle kävelyn animaatio |
Weapon | Hahmon ase |
4.3 Tärkeimmät metodit
Nimi | Parametrit | Metodin selitys |
---|---|---|
Jump | double impulssi | Olio hyppää. Ottaa huomioon mm. onko olio jo ilmassa, jolloin ei hypätä uudestaan. Parametrina otetaan desimaalilukuna vastaan voima, jolla olio hyppää. |
Walk | double suunta | Olio kävelee. Mahdollisimman luonnollisen näköinen kävelyyn tarkoitettu metodi. Parametrina suunta, joka voi olla Direction.Left tai Direction.Right . Jos suuntaa ei anneta, käytetään nykyistä rintamasuuntaa (FacingDirection). |
5. Automobile
Auto-olio eli Automobile-tyypin olio on PhysicsObjectin perillinen, joka voi esimerkiksi kiihdyttää, jarruttaa ja käyttäytyä kuin auto.
Automobilella on siis lisäksi samat ominaisuudet, metodit ja tapahtumat kuin GameObjectilla ja PhysicsObjectilla
5.1 Tärkeimmät ominaisuudet
Acceleration | Auton kiihtyvyys |
BrakeDeceleration | Jarrujen tehokkuus |
Maneuverability | Autojen ohjattavuus |
TopSpeed | Autojen huippunopeus |
5.2 Tärkeimmät metodit
Accelerate | Kiihdyttää |
Brake | Jarruttaa |
Turn | Kääntyy |
6. Tank
Tank eli tankkiolio on sivusta kuvattu tankki, joka on PhysicsObjectin perillinen, ja jolla on lisäksi tankille kuuluvia ominaisuuksia kuten esimerkiksi osumapisteet ja tykki.
Tankilla on siis lisäksi samat ominaisuudet, metodit ja tapahtumat kuin GameObjectilla ja PhysicsObjectilla.
6.1 Tärkeimmät ominaisuudet
Ammo | Ammukset |
Cannon | Tykki |
HitPoints | Osumapisteet |
6.2 Tärkeimmät metodit
Accelerate | Kiihdyttää. |
Shoot | Ampuu tankin tykillä. |
7. PhysicsStructure
PhysicsStructure on rakenne, johon voi lisätä useita PhysicsObjecteja, ja ne pysyvät tasaisen välimatkan päässä toisistaan kuin näkymättömillä kiinnikkeillä yhdistettyinä.
PhysicsObject o1 = new PhysicsObject(20, 20);
PhysicsObject o2 = new PhysicsObject(20, 20);
o1.Position = new Vector(-100, 200);
o2.Position = new Vector(100, 150);
PhysicsStructure rakenne = new PhysicsStructure(o1, o2);
Add(rakenne);
Rakenteeseen kuuluvia olioita ei tarvitse erikseen lisätä peliin Add-metodilla, riittää kun rakenteen itsessään lisää. Rakenteella on paljon samoja ominaisuuksia ja metodeita kuin PhysicsObjectilla, ja niiden käyttäminen vaikuttaa kaikkiin rakenteen osiin.
7.1 Tärkeimmät metodit
Nimi | Parametrit | Metodin selitys |
Add | PhysicsObject olio | Lisää uuden olion rakenteeseen. |
Remove | PhysicsObject olio | Poistaa olion rakenteesta. |
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.