Oppitunti 18 - Tile prefabs

Tällä oppitunnilla luomme pelikenttää varten tarvittavat objektit eli lattian, ruuan, esteet ja poistumistien. Näitä objekteja kutsutaan tiiliksi tai laatoiksi (engl. tile). Pelialue muodostuu pelilaudasta, jossa hahmot liikkuvat ja toiminnot tapahtuvat. Pelilauta taas muistuttaa shakkilautaa eli hahmot voivat liikkua vuoroissa ruuduista toiseen. Joissain ruuduissa on esimerkiksi ruoka- tai juomaobjekteja, joita pelaaja voi kerätä. Objekteja voi tietenkin keksiä myöhemmin loputtomasti lisää.

 

Tällä oppitunnilla on paljon saman tyyppisiä tehtäviä, koska jokainen objekti pitää määritellä prefabiksi erikseen. Toistojen kautta kuitenkin opit tekemään automaattisesti prefabeja halutessasi ja tästä on hyötyä erityisesti, kun halua luoda jatkossa omia objekteja peliin.

 

Tehtävä 1 - Lattialaattojen teko

 

Pelilaudan pohja tehdään lattia (engl. floor) tiilistä.

1. Luo uusi peliobjekti valitsemalla yläpalkista GameObject -> Create Empty

2. Anna peliobjektin nimeksi floor1

3. Lisää Inspector ikkunasta komponentti valitsemalla Add Component -> Renderer -> Sprite Renderer

4. Raahaa ensimmäinen lattialaatta paikoilleen Sprite Rendererin kohtaan Sprite. Lattialaatat ovat ruskeita laattoja, jotka näet alla olevassa gif-animaatiossa:

5. Avaa Prefabs-kansio

6. Raahaa floor1 Prefabs-kansioon

7. Nyt kun floor1 prefab on valmis, anna floor1 peliobjektin nimeksi floor2

8. Raahaa toinen lattialaatta paikoilleen Sprite Rendererin kohtaan Sprite

9. Raahaa floor2 peliobjekti Prefabs kansioon

10. Valitse Orginal prefab

11. Toista sama toimenpide niin monta kertaa, että kaikki kahdeksan lattialaattaa ovat Prefab-kansiossa

Tehtävä 2 - Exit

 

Pelissä kentästä toiseen siirrytään Exit -kyltin kautta. Exit-kyltti tulee oikeaan yläreunaan ja sitä varten tarvitsemme erillisen prefabin. Kylttiin tulee box collider, jotta tiedetään, että pelaaja on Exit-kyltin kohdalla.

 

1. Muuta floor8 peliobjektin nimeksi exit

2. Siirrä Exit sprite rendererin kohtaan Sprite

3. Valitse Add Component ja sieltä Physics 2D -> Box Collider 2D

4. Valitse Box Collider 2D:stä ruksi Is Trigger kohtaan

5. Valitse Sorting layeriksi Item

6. Valitse tagiksi Exit

7. Tarkista vielä, että kaikki on samalla tavalla kuin alla olevassa kuvassa ja siirrä peliobjekti Prefabs-kansioon

8. Valitse Orginal Prefab

Tehtävä 3 - Ruoka ja juoma

 

Roguelike pelit eroavat siinä monista muista peleistä, että roguelikeissa hahmot syövät ja juovat. Tämä on olennaista pelihahmon selviämisen kannalta, sillä peleissä voi kuolla esimerkiksi nälkään. Ruoka- ja juomaobjekteista tehdään kerättäviä objekteja. Myöhemmin kerättäviä objekteja voi olla paljon muitakin.

 

1. Muuta exit peliobjektin nimeksi food

2. Siirrä food sprite (sprite, jossa on kuva punaisista marjoista) Sprite rendererin kohtaan Sprite

3. Valitse Sorting layeriksi Item

4. Valitse tagiksi Food

5. Valitse Layeriksi Default

6. Ruokaobjekti käyttää myös Box Collider 2D:tä, joten tarkista, että Is Trigger kohdassa on ruksi

7. Siirrä food peliobjekti Prefabs kansioon

8. Valitse Orginal Prefab

9. Nimeä food peliobjekti uudestaan antamalla sille nimeksi soda

10. Siirrä soda sprite (sprite, jossa on kuva tölkistä) Sprite rendererin kohtaan Sprite

11. Vaihda tagiksi Soda

12. Valitse Layeriksi Default

13. Siirrä Soda peliobjekti Prefabs kansioon

14. Valitse kysyttessä Orginal Prefab

Tehtävä 4 - Ulkoseinät

 

Peliin tulee seiniä, jotta pelaaja ei kulje missä sattuu.

 

1. Muuta soda peliobjektin nimeksi outerwall1

2. outerwall peliobjekteihin tulee kolme erilaista spriteä, jotka eroavat toisistaan  ulkonäöllisesti. Katso kuva (outerwall spiritet on kuvassa valittu ja niiden tekstit sinisellä pohjalla):

2. Siirrä ensimmäinen kivinen outerwall sprite Sprite rendererin kohtaan Sprite

3. Peliobjektissa on Box Collider, mutta ota ruksi pois kohdasta Is Triggered

4. Vaihda tagiksi Untagged

5. Vaihda layeriksi Blocking Layer. Peliobjekti estää pelaajaa liikkumasta pelialueen ulkopuolelle.

6. Vaihda Sorting Layeriksi Floor

7. Siirrä outerwall1 peliobjekti Prefabs kansioon

8. Kysyttäessä valitse Orginal Prefab

9. Muuta peliobjektin nimeksi outerwall2

10. Siirrä toinen kivinen outerwall sprite Sprite rendererin kohtaan Sprite

11. Siirrä outerwall2 peliobjekti Prefabs kansioon

12. Kysyttäessä valitse Orginal Prefab

13. Muuta peliobjektin nimeksi outerwall3

14. Siirrä kolmas kivinen outerwall sprite Sprite rendererin kohtaan Sprite

15. Siirrä outerwall3 peliobjekti Prefabs kansioon

16. Kysyttäessä valitse Orginal Prefab

Tehtävä 5 - Sisäseinät

 

Sisäseinien teko on samaa prefabien tekoa kuin aiemmissakin tehtävissä. Sisäseiniin tulee seuraavat kahdeksan spriteä:

1. Muuta outerwall3 peliobjektin nimeksi wall1

2. Vaihda Sorting Layeriksi Item

3. Layerin pitää olla Blocking Layer, koska seinät estävät hahmon liikkumisen

4. Raahaa wall1 peliobjekti Prefabs-kansioon

5. Kysyttäessä valitse Orginal Prefab

6. Tee seitsemän muuta seinäobjektia samaan tyyliin kuin aiemmissa tehtävissä

Suomen Tiedekoulu Oy