Peatükk 2. KsirKi naha loomine

KsirKi välimus on igati muudetav. Kel on korralikud graafilised oskused, saab uue naha luua lihtsalt olemasolevat kopeerides, muutes vajalikult graafikat ja uuendades andmeid .desktop-seadistustefailis, mida saabki teha KsirKi naharedaktoris. Viimase asjana tuleb redigeerida faili, milles on kirjeldatud, mida siis tuleb lõpuks paigaldada.

Kõik näited, nii tekst kui ka pildid, on pärit KsirKi vaikenahast.

Kataloogide ja failide struktuur

  • Data/: andmed, mida programm kasutab naha piltide käsitlemisel.

    • CMakeLists.txt: kirjeldab, mida tuleb paigaldada.

    • onu.desktop: naha kirjelduse põhifail. Selle kirjelduse leiab allpool.

  • Images/: naha pildid (kaart, spraidid jne.).

    • CMakeLists.txt: kirjeldab, mida tuleb paigaldada.

    • pool.svg: kaart ja kõik nahas kasutatavad spraidid.

    • map-mask.png: pilt, mis võimaldab programmil mängu ajal tuvastada, millise riigi kohal asub hiir (vaata allpool).

    • *.png: siinsed teised pildid on nuppude pildid.

  • CMakeLists.txt/: kirjeldab, mida tuleb paigaldada.

  • Sounds/: naha helid.

Kataloog Data

See kataloog sisaldab ainult üht faili, nimelt world.desktop. See kirjeldab naha sisu ehk siis maailma ülesehitust ja seda, kuidas seda kuvada. Seda ei pea käsitsi tegema, selle eest võib hoolt kanda KsirKi naharedaktor. Kuid ülevaate täielikkuse huvides kirjeldame seda siiski lähemalt.

onu rühm sisaldab mitmeid riigikirjeid, mitmeid rahvusekirjeid ning ka mitmeid mandrikirjeid. Eri rühmad sisaldavad eri spraitide, riikide, mandrite, rahvuste ja eesmärkide kirjeldusi.

Allpool on kirjeldatud kõigi rühmade sisu.

onu rühm

Tabel 2.1. onu rühma kirjed

Kirje nimiSisu
widthNaha kaardi laius
heightNaha kaardi kõrgus
skinpathNaha asukoht rakenduse andmete asukoha suhtes (vaikimisi skins/)
nb-countriesRiikide arv (vaikenahas 42); sama palju riike peaks olema allpool kirjeldatud riikide rühmades
nb-nationalitiesRahvuste arv (6 vaikenahas ); sama palju rahvusi peaks olema allpool kirjeldatud rahvuste rühmades
nb-continentsMandrite arv (6 vaikenahas ); sama palju mandreid peaks olema allpool kirjeldatud mandrite rühmades
poolPuulifaili nimi ja asukoht naha asukoha suhtes (nt. Images/pool.svg)
map-maskKaardimaski faili nimi ja asukoht naha asukoha suhtes (nt. Images/map-mask.png)
format-versionNahafaili vormingu versioon (2.0)
nameNaha näidatav nimi
descNaha pikk kirjeldus
fighters-flag-y-diffLippude ja suurtükkide spraitide kõrguse erinevus
width-between-flag-and-fighterPikslite arv lipu vasakpoolseima piksli ja tavaolekus suurtüki (kui see ei tulista ega plahvata) parempoolseima piksli vahel


Spraitide kirjelduste rühmad

Iga spraiditüüp (lipp, jalavägi, ratsavägi, suurtükk, tulistav suurtükk ja plahvatav suurtükk) on kirjeldatud vastavas rühmas. Ainult mõnel spraidil on laiusekirje (width). Seda kirjet kasutatakse suhtelise asukoha määramiseks animatsioonide ajal: suurtükkide korral ei peaks nad tulistamisel või plahvatamisel "liikuma" teisele poole lippu.

Tabel 2.2. Spraidi kirjelduse rühma kirjed

KirjeSisu
widthLipuspraidi kaadrite laiuse määratlus
heightLipuspraidi kaadrite kõrguse määratlus
framesSpraidi kaadrite arv
versionsLipuspraidi versioonide arv


Riikide kirjelduste rühmad

Kõik riigid on kirjas onu rühmas, riigikirjel on oma rühm, mille sildiks on riigi nimi. Allolev tabel loetleb nende rühmade kirjed.

Tabel 2.3. Riikide kirjed

Kirje nimiSisu
idRiigi täisarvuline unikaalne identifikaator, peab algama nulliga (0)
nameRiigi näidatav nimi
<sprait>-pointRiigi kõiki spraiditüüpe (lipp, jalavägi jne.) kuvatakse teatavas asukohas, mille määrab antud kirje, mis koosneb kahest komaga eraldatud täisarvust
neighboursAntud riigi naabrite ID-de loend


Rahvuste kirjelduste rühmad

Kõik rahvused on kirjas onu rühmas, rahvusekirjel on oma rühm, mille sildiks on rahvuse nimi. Allolev tabel loetleb nende rühmade kirjed.

Tabel 2.4. Rahvuste kirjed

Kirje nimiSisu
nameRahvuse nimi (nt. Jaapan)
leaderNimi, mida pakutakse antud rahvust valivale mängijale
flagRiigi lipuspraidi elemendi nimi onu SVG-failis


Mandrite kirjelduste rühmad

Kõik mandrid on kirjas onu rühmas, mandrikirjel on oma rühm, mille sildiks on mandri nimi. Allolev tabel loetleb nende rühmade kirjed.

Tabel 2.5. Mandrite kirjed

Kirje nimiSisu
nameMandri nimi (nt. Aafrika)
idMandri täisarvuline unikaalne identifikaator
bonusArmeede arv, mida saab käigu lõpul mängija, kellele kuuluvad kõik mandri riigid
continent-countriesAntud kontinendil asuvate riikide ID-de loend


Eesmärkide kirjelduste rühmad

Kõik eesmärgid on kirjas onu rühmas, eesmärgikirjel on oma rühm, mille sildiks on eesmärgi nimi. Allolev tabel loetleb nende rühmade kirjed.

Tabel 2.6. Eesmärkide kirjed

Kirje nimiSisu
typeEesmärgi tüüp, võib olla manner, riik või mängija
nbArmiesByCountryMinimaalne armeede arv, mida mängija peab asetama igasse riiki
nbCountriesRiikide arv, mida mängija peab omandama
nbCountriesFallbackKui eesmärgi tüübiks on mängija, kuid keegi tapab selle, siis saab siin määrata riikide arvu, mida mängija peab selle asemel vallutama
descEesmärgi täielik tekstiline kirjeldus koos kõigi kohatäitjatega
continentsMandrite ID-de loend, mida mängija peab vallutama


Kataloog Images

See kataloob sisaldab KsirKi spetsiifilisi nuppe ning SVG-puulifaili, mis sisaldab kaarti ja kõiki spraite.

Fail pool.svg

See SVG-fail sisaldab kaarti ja kõiki mängi spraite. Igal elemendil on selline nimi, et mängu saab need kõik eraldi valida ja renderdada.

Vaikenaha puhul on spraitideks lipud, jalavägi, ratsavägi ja suurtükk. Jalavägi tähistab üht armeed, ratsavägi viit ja suurtükk kümmet. Suurtükke kasutatakse ka võitlevate armeede kujutamiseks. Seepärast ongi suurtükispraite tervelt kolm: tavaline paigalseisev või liikuv, tulistav ja plahvatav suurtükk.

Iga spraidi pilt kujutab endast objekti mitme vaate ja iga vaate sees vastavate kaadrite kogumit. Vaated on korraldatud vertikaalselt, kaadrid horisontaalselt. See, kus täpselt lõigata pilt kaadriteks, leitakse järgmiselt: pildi kõrgus jagatakse vaadete arvuga ja laius kaadrite arvuga. Need andmed leiab failist onu.desktop.

Spraidi pildi näidis: cannon.png

Armeede spraitide puhul on kolm eri vaadet (vastavalt ülalt alla):

  • paremale vaatav

  • vasakule vaatav

  • ja otse vaatav

Lippude puhul on ainult üks vaade. Kõigi spraitide taust peab olema läbipaistev.

Lipuspraidi pildi näidis: italy.png

Tabel 2.7. Puuli elemendid

Elemendi nimiNäidispiltSisu
map
Naha maailma kaart. Riikidel on suvaline kuju, aga need tuleb rühmitada silmaga haaratavate mandrite kaupa kas ainult asukoha või värvi järgi
italy
Itaalia rahvuse lipp; sellist kirjet on iga rahvuse puhul ainult üks
infantry
Üht armeed kujutav ikoon
cavalry
Viit armeed kujutav ikoon
cannon
Kümmet armeed kujutav ikoon
firing
Võitlevaid armeesid kujutav ikoon
exploding
Võitluse kaotanud armeesid kujutav ikoon
Alaska
Alaska riigi kujund. Seda kasutatakse riigi esiletõstmiseks. Iga riigi puhul on ainult üks kujund. Selle värvi ei kasutata, sestap on värv vaba.
reddices
Lahingu tulemusi näitavad punased täringud
bluedices
Lahingu tulemusi näitavad sinised täringud
mark1
See tähis lisatakse võitlevatele spraitidele ning see näitab, mitut armeed nad esindavad. Antud juhul on selleks 1, aga on ka elemendid mark2 ja mark3.


Fail map-mask.png

See png-fail tähistab samuti naha maailma kaarti, kuid värvikoodidega, mis võimaldavad iga maad unikaalselt tuvastada. Maadel peab olema vähemalt sama kuju nagu vastaval maal failis map-png, et kasutajvad võiksid vaadataval maal kuhu tahes klõpsata. Sellised riigid nagu saared, näiteks Indoneesia, võivad vaikimisi kaardil olla suuremad kui nende vaste failis map.png, et riiki oleks lihtsam valida.

Kaardimaski näidis

Riigi värvi sinine komponent (RGB mudelis) identifitseerib riigi: index 0 on riik 0 failis onu.xml, index 1 on riik 1 jne. Valge (RGB-s 0xFFFFFF) identifitseerib riigi puudumise (mere või miks ma mitte eikellegimaa).

Nuppude pildid

Failinimed on otse koodis, nii et neid ei tohiks muuta. Allolev tabel näitab kõiki pakutavaid nuppe.

Tabel 2.8. Graafilise kasutajaliidese nupud

PiltFailinimiSisu
newNetGame.pngPüüab liituda võrgumänguga
recycling.pngKui kõik mängijad on oma armeed asetanud, on võimalik oma jaotust muuta ning seda see nupp teebki
recyclingFinished.pngArmeede jaotamist enam ei muudeta; jaotamise lõpetamiseks tuleb seda nuppu vajutada kõigist klientide akendes
nextPlayer.pngLõpetab aktiivse mängija käigu ja annab järje edasi järgmisele mängijale või suundub järgmise vooru juurde, kui aktiivne mängija oli antud vooru viimane käiku sooritav mängija
attackOne.pngRünnaku alustamine ühe armeega
attackTwo.pngRünnaku alustamine kahe armeega
attackThree.pngRünnaku alustamine kolme armeega
defendOne.pngRünnatava maa kaitsmine ühe armeega
defendTwo.pngRünnatava maa kaitsmine kahe armeega
moveArmies.pngArmeede liigutamise alustamine kahe maa vahel (käigu viimane toiming)

Kataloog Sounds

See kataloog sisaldab kolme helifaili:

  • roll.wav esitatakse armeede liikumisel

  • cannon.wav esitatakse tulistamisel

  • ja crash.wav esitatakse suurtüki lõhkemisel