Skip to content
Snippets Groups Projects
Commit 55914577 authored by N2970's avatar N2970
Browse files

Update README.md

parent 6c12d84c
No related branches found
No related tags found
No related merge requests found
......@@ -9,9 +9,20 @@ Linkki peliin: <https://simmer.io/@annamatela/foxxy-winter-adventure>
Foxxy Winter Adventure on perinteinen, sivustapäin kuvattu 2D-tasohyppelypeli, joka muistuttaa esimerkiksi sellaisia retropelejä kuin Super Mario. Pelaajan pelihahmona on kettu, jolla voi juosta, hypätä ja ryömiä pelimaailmassa. Kettua liikuttamalla pelaajan on edettävä tason loppuun ja kerättävä matkalla riittävästi timantteja (vähintään 20 kpl) tason läpäisemiseksi. Pelaajalla on lähtökohtaisesti kolme elämää. Törmätessään pommiin (ja ollessaan lähellä pommia sen räjähtäessä) pelaaja menettää yhden elämän, mutta löytäessään kirsikan hän saa yhden elämän. Mikäli elämät pääsevät loppumaan, ennen kuin pelaaja on läpäissyt tason, hänen on aloitettava taso alusta. Myös jos pelaaja tipahtaa yhteen tasolla olevista "vesiesteistä", taso on aloitettava alusta.
**Ensimmäisessä versiossa toteutetut toiminnalliset vaatimukset**
-
- pelaaja voi seistä, juosta, hypätä ja ryömiä (animoidut liikkeet)
- pelaaja voi aukaista laatikoita hyppäämällä niiden päälle
- pelaaja voi törmätä esteisiin, kuten laatikoihin ja tasoihin pelimaailmassa
- pelaaja voi menettää elämiä (pommit) ja saada lisää elämiä (kirsikat)
- jos pelaaja menettää kaikki kolme elämäänsä, taso pitää aloittaa alusta
- pelaaja voi pudota "vesiesteeseen", jolloin taso pitää aloittaa alusta
- pelaaja voi kerätä timantteja päästäkseen tason läpi
- pelaaja läpäisee tason kerätessään vähintään 20 timanttia ja päästessään tason loppuun
**Ensimmäisessä versiossa toteuttamatta jääneet toiminnalliset vaatimukset**
- pelaaja voi löytää laatikosta aseen
- pelaaja pystyy ampumaan
- pelissä on liikkuvia vihollisia, joita pelaajan pitää väistellä ja ampua
- pelaaja kohtaa viimeisen tason lopussa loppuvihollisen, joka on voitettava pelin läpäisemiseksi
**Toteutetut ei-toiminnalliset vaatimukset**
- peli on selkeä ja loogisesti etenevä
......@@ -20,7 +31,38 @@ Foxxy Winter Adventure on perinteinen, sivustapäin kuvattu 2D-tasohyppelypeli,
## Pelin toteutus
Foxxy Winter Adventure on toteutettu Unity-pelimoottorilla (2019.4.17f1 Personal), ilmaisia Unity Asset Store -assetteja sekä Unityn paketteja käyttäen. Lisäksi taustamusiikkina on hyödynnetty YouTubesta löytyviä free licence -kappaleita. Toteutuksessa on tukeuduttu useisiin ohjevideoihin ja muuhun internetistä löytyvään materiaaliin, joista tärkeimpänä mainittakoon [Brackeys: How To Make A Video Game](https://www.youtube.com/watch?v=j48LtUkZRjU&list=PLPV2KyIb3jR53Jce9hP7G5xC4O9AgnOuL).
**Käytetyt assetit**
- [2D Ice World](https://assetstore.unity.com/packages/2d/environments/2d-ice-world-106818)
- [Sunny Land](https://assetstore.unity.com/packages/2d/characters/sunny-land-103349)
- [2D Character Astronaut](https://assetstore.unity.com/packages/2d/characters/2d-character-astronaut-182650)
- [Achievement SFX Free](https://assetstore.unity.com/packages/audio/sound-fx/achievement-sfx-free-91639)
- [Sound FX Retro Pack](https://assetstore.unity.com/packages/audio/sound-fx/sound-fx-retro-pack-121743)
- [2D Beginner: Tutorial Resources](https://assetstore.unity.com/packages/essentials/asset-packs/2d-beginner-tutorial-resources-140167)
**Paketit**
- Cinemachine
**Taustamusiikki**
- [Kevin MacLeod - Itty Bitty 8 Bit](https://www.youtube.com/watch?v=DzFXGsRvSwA&list=WL&index=79)
- [Jeremy Blake - Powerup!](https://www.youtube.com/watch?v=l7SwiFWOQqM&list=WL&index=80)
**Tärkeimmät rakenteet**
Peli koostuu neljästä scenestä: menu (pelin aloitusruutu), level 1, level 2 ja score (pelin lopetusruutu). Siirtymistä scenestä toiseen ohjaa GameManager-olio. Level 1 ja 2 on rakennettu tilemap-periaatteella.
Pelissä on pääkamera, ja siihen Cinemachinen avulla liitetty virtuaalikamera. Virtuaalikameran avulla on asetettu pääkamera seuraamaan pelaajan liikkumista pelimaailmassa.
Pelihahmon (kettu) liikkeitä ja muita toimintoja hallitaan kahdesta skriptistä: PlayerMovement ja PlayerController. Näistä ensiksi mainittu on keskittynyt nimensä mukaisesti objektin liikkeiden ja liikkeisiin liittyvien animaatioiden hallintaan. Jälkimmäinen sisältää liikkeiden ohjaamisen ohella muitakin toimintoja kuten timanttisaldon ja elämien laskeminen, sekä erilaisiin tapahtumiin liittyvien audioklippien soittaminen. Esimerkiksi kun pelaaja kerää timantin, Player-objektiin komponenttina kuuluva AudioSource soittaa Gem-objektiin liittyvän audioklipin, jonka Gem-objekti välittää sille parametrina.
Pelaajan liikkeiden toteutuksessa on hyödynnetty [Brackeys'in Character Controlleria](https://github.com/Brackeys/2D-Character-Controller/blob/master/CharacterController2D.cs).
Pelissä "kerättäviin" objekteihin (laatikko, timantti, kirsikka, pommi) liittyy kuhunkin omat skriptinsä, joiden avulla ohjataan niiden triggeröimiä pelihahmon toimintoja, animaatioita ja ääniefektejä. Yksinkertaisin näistä on laatikko, jonka komponenttina oleva Edge Collider toimii triggerinä: kun pelaaja hyppää laatikon päälle, laatikko katoaa pelimaailmasta (Crate-objektiin komponenttina liittyvä skripti tuhoaa kyseisen peliobjektin). Monimutkaisin puolestaan on pommi. Kun pelihahmo törmää siihen, pommin Capsule Collider triggeröi pommin räjähtämisen. Siihen liittyy räjähdysanimaation suorittaminen ja räjähdysäänen soittaminen, sekä pelaajan elämien vähentäminen yhdellä (mikä puolestaan johtaa pelaajan "hit"-animaation suorittamiseen).
## Onnistumiset, ongelmat ja jatkokehitys
## Ehdotus arvosanaksi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment