NAV15AP
1. Jakso lukuvuonna 2016-17
1. Jakso lukuvuonna 2016-17
Tarvitsemme tähän tehtävään Unityn lisäksi playmakeria.
Playmaker ikkunan saa näkyville, kun ylhäältä playmaker valikosta ottaa
vaihtoehdon playmaker editor. Voit sen jälkeen sijoittaa ikkunan haluamallesi
paikalle.
Aloitetaan lisäämällä tiedostoon kaksi spritea. Toinen on
pelihahmo ja toinen alusta, jossa kävellään. Muista laittaa spriten asetuksiin
tekstuuri tyypiksi Sprite (2D & UI). Valitse filter modeksi trilinear. Filter mode määrittää kuvan laadun. Trilinear
on paras laatu, mutta vie eniten tehoja. Varsinkin mobiilipelejä tehdessä tämä
on hyvä ottaa huomioon ja silloin saattaa olla järkevintä käyttää bilinear
modia. Tee tämä molemmille spriteille.
Sen jälkeen viedään spritet peliin. Raahaa molemmat
hierarkia ikkunaan, jolloin ne ilmestyvät sekä scene että game ikkunoihin.
Aseta hahmolle order in layer kohdassa isompi luku kuin lattialle. Näin hahmo
on aina lattian edessä, jolloin jalat eivät näytä uppoavan lattiaan. Liikuta
molemmat spritet siten, että ne ovat kameran alaosassa, mutta kuitenkin
näkyvillä. Molempiin asetetaan myös 2D box colliderit ja hahmoon lisäksi
rigidbody 2D. Lisää vielä molemille spriteille tag. Pelaajalle löytyy valmiina
oleva player tag, mutta lattialle pitää luoda oma uusi tagi ja nimetä se
haluamallaan tavalla.
Seuraavaksi valitaan hahmo hierarkia ikkunasta. Hahmolle
pitää lisätä FSM (fine state machine), joka löytyy add component valikosta
oikealta. Lisää uusi FSM ja nimeä se. Hahmon tulee liikkua oikealle ja
vasemmalle. Events kohdasta lisää kaksi uutta tapahtumaa: left ja right.
Klikkaa hiiren oikealla startin alapuolella olevaa statea ja lisää molemmat
tapahtumat add transition kohdasta. Luo kaksi uutta statea. Uuden staten saa
luotua klikkaamalla hiiren oikealla painikkeella ja valitsemalla add state.
Vedä nuolet molemmista tapahtumista omiin stateihin.
Nyt luodaan hahmolle liikkuminen. Keskimmäisen staten
ollessa valittuna, ota oikeasta alakulmasta action browser. Etsi sieltä get key
down toiminto. Valitse sama toiminto kaksi kertaa, koska tulet käyttämään
liikkumisessa kahta eri näppäintä. Lisää toiseen näppäimeksi A ja toiseen D. A-näppäin
lähettää tapahtuman left ja D-näppäin lähettää tapahtuman right. Walking right stateen lisätään 3
toimintoa: get key up, translate ja set scale. Get key up kertoo milloin
pelaaja lopettaa näppäimen painamisen ja hahmon pitää lopettaa liikkuminen. Translate
liikuttaa hahmoa tietyn verran annettuun akselin suuntaan, kun näppäintä
painetaan. Set scale skaalaan hahmon, joilloin se katsoo oikealle, kun
painetaan D-näppäintä ja vasemmalle, kun painetaan A-näppäintä.
Seuraavaksi luodaan uusi FSM hyppimistä varten. Ensimmäiseen
stateen laitetaan get key down toiminto ja valitaan näppäimeksi space. Tehdään
uusi event jump ja vedetään siitä nuoli uuteen stateen. Seuraavaan stateen
laitetaan toiminto add force 2D. Se lisää spirteen voimaan tietyllä akselilla.
Valitaan y-akseli ja lisätään forceksi
n. 300. Sen jälkeen laitetaan transition event finished ja vedetään se takaisin
start stateen. Nyt hahmo pystyy hyppäämään. Ongelmana tässä on, että hahmo
hyppää aina, kun space-näppäintä painetaan. Tämä ei ole perus tasohyppelyssä
toimiva ratkaisu, joten ongelma täytyy korjata.
Lisätään hyppy FSM:ään
uusi state: check landing. Staten tarkoituksena on seurata, milloin hahmo
koskettaa maata ja eliminoida hyppääminen ilmassa. Check landingiin tapahtuma on landing, josta
vedetään nuoli start stateen ja toiminto ray cast 2D. From positioniin
laitetaan -1, koska halutaan, että ray cast suuntautuu alas. Distance kohtaan
laitetaan luku, jolla ray cast tunnistaa milloin osutaan lattiaan. Resultin hit event kohtaan laitetaan on
landing, jolloin state lähettää tiedon seuraavaan stateen ja antaa pelaajan
hypätä uudelleen. Filteriin laitetaan layer maskiin 1 ja vaihdetaan hahmon
layeriksi ignore raycast. Nyt hypyn pitäisi toimia kunnolla ja hahmolla on
liikkumiseen tarvittavat perustoiminnot.
TEHTÄVÄ 1: Tuo oma hahmo ja liikkumisen alustaksi tarkoitettu sprite Unityyn. Tee hahmolle liikkuminen (sivuille ja hyppy). Varmista ettei hahmo voi hypätä ilmassa.
TEHTÄVÄ 2: Luo hahmolle toisenlainen liikkuminen siten, että hahmo liikkuu tasaisella vauhdilla oikealle ilman, että pelajaan pitää painaa näppäintä.
Ei kommentteja:
Lähetä kommentti