Nyt kerron, kuinka panosten ja vihollisten välinen törmäys on tässä pelissä toteutettu. Törmäystarkistuksiahan voi peleissä tehdä monilla eri tavoilla ja ympyröiden käyttämistä törmäystarkistukseen käytentään uskoakseni varsin paljon. Eli objektin ympärille kuvitellaan ympyrä ja katsotaan osuuko se toisen objektin ympärillä olevaan ympyrään. Periaatteessa se on sama, kuin testattaisiin näiden kahden kahden objektin keskipisteiden välinen etäisyys ja niin se myös käytännössä toteutetaan. Tämä seuraava kuva havainnollistaa hienosti kyseistä systeemiä:
Tässä systeemissä on kuitenkin yksi ongelma. Koska panokset liikkuvat nopeasti ja niitä voidaan liikuttaa vain framejen vaihtuessa, panokset ikään kuin pomppivat eteenpäin. Jos vihollinen on liian pieni, panos voi pompata tämän yli, vaikka näyttäisi, että se osuisi. Seuraava kuva yrittää havainnollistaa tätä tapahtumaa:
Niinpä tätä voidaan yrittää korjata tekemällä vihollisen ympärillä olevasta osuma-alueesta suurempi. Tässä tapauksessa syntyy kuitenkin toisenlainen ongelma. Nyt, vaikka panos menisi selvästi ohi vihollisesta, se voi silti osua, kuten seuraava kuva havainnollistaa:
Jotta tämä saataisiin korjattua, olen lisännyt tähän peliin vielä toisenlaisen tavan tarkistaa törmäys. Siinä kuvitellaan, että panoksen kulkema reitti synnyttää viivan ja sitten lasketaan vihollisen etäisyys tähän viivaan. Tämä oli varsin yksinkertaista toteuttaa, koska taulukkokirjasta löytyi valmis kaava tämän laskutoimituksen tekemiseen. Tämä törmäyssysteemi näyttäisi seuraavanlaiselta:
Kun nämä kaksi törmäystarkistusta yhdistetään saadaan aikaiseksi kyseinen systeemi törmäyksen tarkistamiselle. Siinä on saatu korjattua kaikki viat, paitsi yksi. Nyt panos näyttäisi osuvan viholliseen liian aikaisin, mutta se on helppo korjata. Piirretäänkin panos hieman edemmäs, kuin missä se todellisuudessa on.
keskiviikko 16. joulukuuta 2009
Tilaa:
Lähetä kommentteja (Atom)
Ei kommentteja:
Lähetä kommentti