Friday 13 April 2012

Miltä kartta näyttää

Hahmottelenpa tänne hieman edellisen viestin karttasuunnitelmia, koska en jaksa avata Netbeansia.

Ylimmällä tasolla meillä on lista MEMAP-olioita. Tiedän että tämä saattaa tehdä latausajoista melko seksikkäitä, mutta väittäisin että ainakin suunnitelmien protoiluasteella karttatiedostot ovat serialisoituja tällaisia listoja. Jos latausajat ovat pahoja, voi tiedostoformaattia muuttaa serialisoidusta listasta, joka tallennetaan ja ladataan yhdellä käskyllä, headeriksi, joka kuvaa tiedoston rakennetta (monesko kartta on mikäkin kartta), ja jonoksi kartta-olioita, joiden lataus rinnakkaistetaan tai johon kirjoitetaan joku luovuutta uhkuva algoritmi.

Varsinaista MEMAP-luokkaa taas muutetaan niin, että siihen lisätään lista vektoreita. Nämä vektorit kuvaavat tilejä, joilta pääsee liikkumaan seuraavalle kartalle. Tämä vektoriluokka on tietysti peritty perinteisestä Vector2-luokasta, jonka "lainasin" droidipeliraamatustani, Tähän perittyyn luokkaan pitäisi laittaa myös viite karttaan, johon vektorin kuvaamasta tilestä pääsee. Tämä viite on todennäköisesti kohdekartan hashcode sarjallistaessa ja editorissa suora viite kohdekarttaan... Tai toisaalta voisihan pelkkä viitekin toimia. Täytyy tutkia miten oliot käyttäytyvät tiedostoon tallentaessa.

Lisäksi vektoreihin pitäisi myös merkitä kohdekartan saapumistile. Tiivistettynä nämä siirretilet kuvaavat siis:
  • Lähtökartan tileä, josta siirtymä tapahtuu
  • Kohdekarttaa, jolle siirtymä tapahtuu
  • Kohdekartan tileä, jolle siirtymä tapahtuu
Ei pitäisi olla mikään paha toteutettava, edes käyttöliittymällisesti. Kiitos jollekin suunnittelijaparalle, tämä kevät eletään ilmeisesti ilman viimekeväisen kaltaista rakennehärösuunnitelmaa, joka sotki asiat kuukausiksi.

1 comment:

  1. Itse asiassa siirrevektoriin pitäisi tallentaa kohdekartta, ei lähtökartan listaan samalla indeksille kuin vektori

    ReplyDelete