Tag: tank

Tilemapit ja tietokoneohjaus

(Klikkaa peliruutua aktivoidaksesi näppäimet: nuolet + space)

Vaikka tarkoitukseni oli pienen tilemap-tutkailun jälkeen jatkaa LeMans-kloonin parissa puuhastelua, jumahdin tarkastelemaan TileMap- ja TileSet-noodeja hieman pidemmäksi aikaa.

Pääsyy tähän oli se, että huomasin että tilesetin yksittäisiin ruutuihin voi lisätä törmäyksiä tarkkailevien noodien lisäksi myös NavigationPolygonInstance-noodin. Tämän noodin avulla tilemapiin merkitään ne alueet, joilla pelaaja tai tietokoneen ohjaama hahmo voivat liikkua. NavigationPolygonInstance toimii yhteistyössä Navigation2D-noodin kanssa; Jos Navigation2D-noodilla on lapsielementteinä NavigationPolygonInstance-noodeja, se luo niiden perusteella kartan alueesta, jossa pelaaja ja tietokone voivat liikkua. Navigation2D-noodin get_simple_path()-funktio tarjoaa myös varsin yksinkertaisen tavan hakea reitti etappipisteinä paikasta A paikkaan B:

path = nav.get_simple_path(start_position, goal, false)

Kun reitti – esimerkiksi pelaajan senhetkiseen sijaintiin – on selvillä, onnistuu tietokoneen ohjastaman hahmon liikuttaminen pisteestä toiseen helposti esimerkiksi linear_interpolate()-funktion avulla. GDQuest esittelee tämän tavan liikuskella kattavasti YouTubessa.

Itse halusin tehdä asiat hieman vaikeamman kautta, ja päädyin toteutukseen jossa tietokoneen ohjastama tankki katsoo joka framen kohdalla missä suunnassa seuraava piste on ja kääntää keulaansa tarvittaessa sen suuntaan. Tai jos seuraava piste on vähän tankin takana, voi tankki myös peruuttaa ja kääntyä. Tällä tavoin tehtynä liike näytti omaan silmääni luonnollisemmalta kuin interpolaation avulla tehty liike.

Koska tankkien liikuttelu osoittautui varsin hauskaksi, luulen että rakentelen tähän prototyyppiin vielä mahdollisuuden tuhota tankkeja ampumalla ennen kuin jatkan LeMansin pariin.

Source: https://github.com/mikahimself/tanked

Tilemap-tutkiskelua

(Klikkaa peliruutua aktivoidaksesi näppäimet: nuolet + space)

LeMans-kloonia aloitellessani päädyin tutkailemaan kuinka Godotin sisäänrakennettu tileset-työkalu toimii ja kuinka helppoa sen avulla olisi laatia LeMansin ei-niin-monimutkaiset radat ja tarkkailla törmäyksiä.

Lyhyt vastaus: varsin helppoa. Oheinen, pikku prototyyppi syntyi parissa tunnissa ja siitäkin osa meni tileset-grafiikoiden piirustamiseen ja törmäyslaatikoiden kanssa näpertelyyn . Pääsin samalla muistelemaan kuinka z-indeksit toimivat, ja niiden avulla tankin päälle lankeaa rasterivarjo seinien vieressä. Ehkäpä tässä täytyykin vielä rakennella Tank-klooni ennen LeMansiin keskittymistä…

Source: https://github.com/mikahimself/tanked