| ... | @@ -7,18 +7,18 @@ Peli otti suhteellisen paljon osumaa WebGL-buildin takia. Asetuksista huolimatta |
... | @@ -7,18 +7,18 @@ Peli otti suhteellisen paljon osumaa WebGL-buildin takia. Asetuksista huolimatta |
|
|
|
|
|
|
|
## Pelaaja
|
|
## Pelaaja
|
|
|
|
|
|
|
|
### Kamera
|
|
#### Kamera
|
|
|
Pelaaja on yksinkertainen kapseli, johon on liitetty kamera gameObjectin lapseksi. Kamera seuraa pelaajan hiirtä ja toimii näin ollen yksinkertaisena ensimmäisen persoonan kamerana. FPS-kamera toteutettiin lähninnä tutoriaalien avulla. Lisäsin tähän itse pehmennyksen Quaternion.Lerp - ominaisuuttan käyttäen, sillä ilman sitä lopputulos oli parhaimmillaankin primitiivinen.
|
|
Pelaaja on yksinkertainen kapseli, johon on liitetty kamera gameObjectin lapseksi. Kamera seuraa pelaajan hiirtä ja toimii näin ollen yksinkertaisena ensimmäisen persoonan kamerana. FPS-kamera toteutettiin lähninnä tutoriaalien avulla. Lisäsin tähän itse pehmennyksen Quaternion.Lerp - ominaisuuttan käyttäen, sillä ilman sitä lopputulos oli parhaimmillaankin primitiivinen.
|
|
|
|
|
|
|
|
### Liikkuminen
|
|
#### Liikkuminen
|
|
|
Pelaajan liikkumisen toteutin alunperin itse ilman pelaajaan vaikuttavia voimia, mutta halusin kokeilla erilaisten fysiikka-elementtien vaikutusta pelaajaan. Vaihdoin siis liikkumis-scriptin Unityn wikistä löytyvään [RigidbodyFPSWalker-scriptiin](http://wiki.unity3d.com/index.php/RigidbodyFPSWalker). Vaikutusta ei juurikaan ollut, mutta olin liian laiska vaihtaakseni scriptiä takaisin vanhaan. Lisäksi scriptin mukana tullut hyppyfunktio on täysi susi. Ilman muokkaamista pelaaja pystyi liukumaan seiniä pitkin ylöspäin ja tekemään kaikkea muuta typerää. Korjasin nämä ongelmat rajoittamalla hyppäämisen onnistumaan vain y-velocityn ollessa nolla. Tämä estää siis hyppäämisen esim. portaita kiivetessä, mutta aika ei riittänyt korjaamaan tätä.
|
|
Pelaajan liikkumisen toteutin alunperin itse ilman pelaajaan vaikuttavia voimia, mutta halusin kokeilla erilaisten fysiikka-elementtien vaikutusta pelaajaan. Vaihdoin siis liikkumis-scriptin Unityn wikistä löytyvään [RigidbodyFPSWalker-scriptiin](http://wiki.unity3d.com/index.php/RigidbodyFPSWalker). Vaikutusta ei juurikaan ollut, mutta olin liian laiska vaihtaakseni scriptiä takaisin vanhaan. Lisäksi scriptin mukana tullut hyppyfunktio on täysi susi. Ilman muokkaamista pelaaja pystyi liukumaan seiniä pitkin ylöspäin ja tekemään kaikkea muuta typerää. Korjasin nämä ongelmat rajoittamalla hyppäämisen onnistumaan vain y-velocityn ollessa nolla. Tämä estää siis hyppäämisen esim. portaita kiivetessä, mutta aika ei riittänyt korjaamaan tätä.
|
|
|
|
|
|
|
|
Pelaaja voi myös "juosta" pitämällä pohjassa shift(fire3)-näppäintä.
|
|
Pelaaja voi myös "juosta" pitämällä pohjassa shift(fire3)-näppäintä.
|
|
|
|
|
|
|
|
### Hyökkääminen
|
|
#### Hyökkääminen
|
|
|
Pelaaja hyökkää painamalla fire1 ja fire2 -näppäimiä. Pelaaja nyrkit koostuvat palloista, joita liikutetaan animaatioiden avulla. Hyökkäysnäppäimen painaminen laukaisee triggerin, joka suorittaa määrätyn animaation. Tämä myös aktivoi nyrkkien collision-detectionin.
|
|
Pelaaja hyökkää painamalla fire1 ja fire2 -näppäimiä. Pelaaja nyrkit koostuvat palloista, joita liikutetaan animaatioiden avulla. Hyökkäysnäppäimen painaminen laukaisee triggerin, joka suorittaa määrätyn animaation. Tämä myös aktivoi nyrkkien collision-detectionin.
|
|
|
|
|
|
|
|
### Kuoleminen
|
|
#### Kuoleminen
|
|
|
Pelaaja kuolee, kun elämäpisteet laskevat nollaan, tai kun pelaaja tippuu rakennuksesta. Rakennuksen ulkopuolella on näkymättömät triggerit, jotka teloittavat niihin iskeytyvät hahmot.
|
|
Pelaaja kuolee, kun elämäpisteet laskevat nollaan, tai kun pelaaja tippuu rakennuksesta. Rakennuksen ulkopuolella on näkymättömät triggerit, jotka teloittavat niihin iskeytyvät hahmot.
|
|
|
|
|
|
|
|
## Pelimaailma
|
|
## Pelimaailma
|
| ... | @@ -37,13 +37,13 @@ Pelimaailman perusrakennuspalikat, joiden päällä voi kävellä. Tekoälyn nav |
... | @@ -37,13 +37,13 @@ Pelimaailman perusrakennuspalikat, joiden päällä voi kävellä. Tekoälyn nav |
|
|
## Viholliset
|
|
## Viholliset
|
|
|
Viholliset ovat kapseleita, joihin on liitetty navigaatioagentti.
|
|
Viholliset ovat kapseleita, joihin on liitetty navigaatioagentti.
|
|
|
|
|
|
|
|
### Liikkuminen
|
|
#### Liikkuminen
|
|
|
Liikkuminen tapahtuu navigaatioagentin avulla. Tämä osoittautui suureksi ongelmaksi ragdollausta suunnitellessa, mutta keksin omasta mielestäni suhteellisen kekseliään ratkaisun ongelmaan.
|
|
Liikkuminen tapahtuu navigaatioagentin avulla. Tämä osoittautui suureksi ongelmaksi ragdollausta suunnitellessa, mutta keksin omasta mielestäni suhteellisen kekseliään ratkaisun ongelmaan.
|
|
|
|
|
|
|
|
### Ragdollaus
|
|
#### Ragdollaus
|
|
|
Kun viholliseen kohdistuu tietty määrä energiaa, tai pelaaja lyö vihollista, vaihtuu vihollinen ns. kuolleeseen tilaan. Toisin sanoen alkuperäinen gameObject tuhotaan, ja tilalle asetetaan kuollut fysiikkaelementti. Tähän vaikuttavat kaikki unityn fysiikan lait, eikä navigaatioagentti häiritse tapahtumia.
|
|
Kun viholliseen kohdistuu tietty määrä energiaa, tai pelaaja lyö vihollista, vaihtuu vihollinen ns. kuolleeseen tilaan. Toisin sanoen alkuperäinen gameObject tuhotaan, ja tilalle asetetaan kuollut fysiikkaelementti. Tähän vaikuttavat kaikki unityn fysiikan lait, eikä navigaatioagentti häiritse tapahtumia.
|
|
|
|
|
|
|
|
### Hyökkääminen
|
|
#### Hyökkääminen
|
|
|
Hyökkäys tapahtuu täysin identtisellä tavalla pelaajan kanssa. Hyökkäyksen osuessa pelaaja menettää elämäpisteitä. Näiden tippuessa nollaan pelaaja kuolee.
|
|
Hyökkäys tapahtuu täysin identtisellä tavalla pelaajan kanssa. Hyökkäyksen osuessa pelaaja menettää elämäpisteitä. Näiden tippuessa nollaan pelaaja kuolee.
|
|
|
|
|
|
|
|
## Pelin kulku
|
|
## Pelin kulku
|
| ... | |
... | |
| ... | | ... | |