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. 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 kissa, jonka leveys on 40 ja korkeus 20. Asetetaan kissan muodoksi vain suorakulmio. Muoto voisi olla myös muu kuin suorakulmio. Lopuksi kissa lisättiin kenttään. Angle Animation Brain Color Image IsVisible Lifetime MaximumLifetime Name Position Size Shape Tag X Y Kulma, jolla oliota voi kääntää. Animoitu tekstuuri. Aivot, jotka oliolle voi asettaa. Olion väri, jos tekstuuria ei ole käytössä tai tekstuuri on (osittain) läpinäkyvä. Olion tekstuuri. Onko olio näkyvä vai ei. Elinaika. Maksimi elinaika. Olion nimi. Sijainti koordinaateissa. Olion koko. Olion muoto. Vapaasti asetettava muuttuja. Sijainti x-koordinaatissa. Sijainti y-koordinaatissa. Move(liikevektori) MoveTo(paikkavektori, nopeus) Destroy() Siirtää oliota eteenpäin annetun vektorin verran. 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. Tuhoaa olion. Jypelin käyttöohjeet» Millaisia olioita on olemassa? 1
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. Lopuksi koira lisättiin kenttään. AngularDamping CanRotate IgnoresGravity IgnoresPhysicsLogics Pyörimisliikkeen hidastuminen Voiko kappale pyöriä Vaikuttaako painovoima Vaikuttaako fysiikka IgnoresCollisionResponse Voiko kappale törmätä IgnoresExplosions KineticFriction LinearDamping Mass MaxVelocity MomentOfInertia Restitution StaticFriction Velocity Vaikuttaako räjähdysten paineaalto 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). 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. Olion massa. Kuinka painava olio on. Suurin nopeus, jonka olio voi saavuttaa. Olion hitausmomentti. Mitä suurempi hitausmomentti, sitä enemmän vääntöä tarvitaan olion pyörittämiseksi. Jos haluat, että olio ei pyöri lainkaan, voit asettaa hitausmomentin äärettömäksi: olio.momentofinertia = Double.PositiveInfinity Olion kimmoisuus. Lepokitka. Liikkeen alkamista vastustava voima, joka ilmenee kun olio yrittää lähteä liikkeelle toisen olion pinnalta (esim. laatikkoa yritetään työntää eteenpäin). Olion nopeus. PhysicsObject 2
Hit MakeOneWay Push Stop StopHorizontal StopVertical Törmäyksistä Kohdistaa olioon impulssin, joka saa olion nopeasti liikkeeseen. Olion läpi voi mennä tietystä suunnasta. Erityisen kätevä tasohyppelypeleissä. Työntää oliota annetun voimavektorin mukaisesti. Pysäyttää olion. Pysäyttää olion vaakasuunnassa. Pysäyttää olion pystysuunnassa. Miten voin liittää törmäyksiin tapahtumia? 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 GameObjectilla ja PhysicsObjectilla PlatformCharacter rotta = new PlatformCharacter(200, 50); Add(rotta); CanMoveOnAir FacingDirection AnimFall AnimIdle AnimJump AnimWalk Voiko liikkua ilmassa Hahmon rintamasuunta Animaatio tai kuva pudotessa (suunta oikealle) Animaatio tai kuva paikallaan ollessa (suunta oikealle) Animaatio tai kuva hypätessä (suunta oikealle) 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. Nimi Parametrit Jump double impulssi Walk double vaakanopeus Metodin selitys Olio hyppää. Ottaa huomioon mm. onko olio jo ilmassa, jolloin ei hypätä uudestaan. Parametrina otetaan desimaalilukuna vastaan voima, jolla olio hyppää. 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. 3
!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). (eri kuin PlatformCharacterilla) Acceleration MaxVelocity Hahmon kiihtyvyys Suurin nopeus, jonka hahmo voi saavuttaa (samat kuin PlatformCharacterilla) CanMoveOnAir FacingDirection LeftIdleAnimation LeftWalkingAnimation RightIdleAnimation RightWalkingAnimation Weapon Voiko liikkua ilmassa Hahmon rintamasuunta Animaatio paikallaollessa vasemmalle Vasemmalle kävelyn animaatio Animaatio paikallaollessa oikealle Oikealle kävelyn animaatio Hahmon ase Nimi Parametrit Metodin selitys Jump Walk Automobile double impulssi Direction suunta Olio hyppää. Ottaa huomioon mm. onko olio jo ilmassa, jolloin ei hypätä uudestaan. Parametrina otetaan desimaalilukuna vastaan voima, jolla olio hyppää. 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). 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 Acceleration BrakeDeceleration Maneuverability TopSpeed Auton kiihtyvyys Jarrujen tehokkuus Auton ohjattavuus Auton huippunopeus!platformcharacter2 4
Accelerate Brake Turn Tank Kiihdyttää Jarruttaa Kääntyy 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 Ammo Cannon HitPoints Accelerate Shoot PhysicsStructure Ammukset Tykki Osumapisteet Kiihdyttää Ampuu tankin tykillä. PhysicsStructure on rakenne, johon voi lisätä useita PhysicsObjecteja, ja ne pysyvät tasaisen välimatkan päässä toisistaan kuin näkymättömillä jousilla 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. Softness Olioiden välisten sidosten pehmeys, eli kuinka paljon 'jouset' olioiden välillä joustavat. Arvo on välillä 0 - ääretön. 5
Nimi Parametrit Metodin selitys Add PhysicsObject olio Lisää uuden olion rakenteeseen. Remove PhysicsObject olio Poistaa olion rakenteesta. 6