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.

18 Oct 23 (edited 18 Oct 23)

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.

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.