Lomilta tuli palailtua toissaviikon sunnuntaina ja viime viikolla pääsin taas pelin kimppuun. Kuten viime viikolla sanoin tarkoituksena olisi lisätä crashdump eli peli kirjoittaa kaatuessaan kaatumisen aiheuttaneen virheen tiedot tekstitiedostoon joten voin analysoida kaatumisien syytä jälkikäteen. Tähän mennessä ainut tapa päästä käsiksi kaatumisen syyhyn oli silloin kun puhelin oli kiinni tietokoneessa. Toinen edellisessä postauksessa ollut ominaisuus oli save/load mahdollisuus. Tämän implementointi meni suhteellisen helposti. Tein SaveLoadManagerin joka hallitsee kyseistä tapahtumaa. Tietojen tallennusta varten loin serialisoitavan (luokka joka on mahdollista kirjoittaa binääritiedostoksi) SaveData luokan joka sisältää tiedot kentästä, yksiköistä, pelaajista ja rakennuksista. Tiedot vain vedetään itse pelistä suoraan luokkaan joka serialisoidaan ja tallennetaan puhelimen muistiin. Itse tiedoston kooksi ei testikartalla ja neljällä yksiköllä tullut kuin 1kilobitti. Ainoa mikä aiheutti tallennuksessa/lataamisessa pientä säätöä, olivat AndEnginen muuttujat joita ei voinut serialisoida. Yksikköjen käytössä oli spriteihin liittyvät TextureAtlakset ja TextureRegionit, mutta näitä ei olisi serialisoitu kumminkaan koska niiden tallentamiseen ei ole tarvetta sillä ne rakennetaan joka tapauksessa uudestaan aina pelin käynnistyessä. AndEnginen puolelta tuli myös TMXTile joka merkkaa kartalla sijaitsevaa neliötä. Yksiköt sekä rakennukset luottavat paikanhaussaan kyseisiin tileihin joten niiden serialisointi oli tarvittavaa. Kiersin itse tilen serialisoinnin kirjoittamalla sen koordinaatit serialisoitaviin muuttujiin ja latauksen yhteydessä haen kyseisen tilen uudestaan koordinaattien perusteella.
Jo mainittujen kahden muun toimenpiteen lisäksi poistin kuvankaappaus-ominaisuuden sillä hoksasin että oma puhelimeni tukee kuvankaappausta ihan sellaisenaan. HUD:ista poistetun kuvankaappausnapin tilalle laitoin tallentamisnapin. Peliin lisäsin myös luokan joka sisältää kaikki pelin vakiomuuttujat (esimerkiksi tallennusten kansion jne.) sekä luokan Androidin "Toast" viestin näyttämistä varten.
Tällä viikolla on tarkoitus lisätä peliin loput rakennukset (kaupungit sekä päämaja) ja sotilaille toiminnallisuus niiden valloittamiseen. Jos rakennusten ja valloittamisen lisääminen sujuu nopeasti, saatan aloittaa moninpeli-ominaisuuden tekemistä niin client kuin server puolellekin.
Viime viikon muutokset:
- Talennus/Lataus lisätty
- Crashdump
- Vakiot-luokka
- Poistettu kuvankaappaus
Ensi viikolla tulevat muutokset:
- Lisää rakennuksia
- Rakennuksien valloitus
- Mahdollinen moninpelin aloitus
Ei kommentteja:
Lähetä kommentti