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).
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).