Kapitel 2. Skapa ett KsirK-skal

KsirK är fullständigt anpassningsbart med olika skal. För de som kan handskas med grafik, är det enkelt att skapa ett nytt skal, genom att kopiera ett befintligt skal, redigera eller ändra grafiken och uppdatera data i en .desktop-inställningsfil, vilket görs med användning av Ksirk skaleditor. Det sista steget är att redigera filen som beskriver vad som ska installeras.

Alla exempel (text och bilder) kommer från KsirKs standardskal.

Katalog- och filstruktur

  • Data/: data använt av programmet för att hantera skalets bilder.

    • CMakeLists.txt/: beskriver vad som ska installeras.

    • onu.desktop: huvudfil för beskrivning av skalet. Se beskrivningen nedan.

  • Images/: skalets bilder (karta, figurer, etc.)

    • CMakeLists.txt/: beskriver vad som ska installeras.

    • pool.svg: kartan och alla figurer som används av skalet.

    • map-mask.png: bilden som gör det möjligt för programmet att ta reda på vilket land musen finns över under spelet (se nedan).

    • *.png: övriga bilder här är knapparnas ikoner.

  • CMakeLists.txt/: beskriver vad som ska installeras.

  • Sounds/: ljudfiler för skalet.

Katalogen Data

Den här katalogen innehåller bara en fil, world.desktop. Filen är en beskrivning av skalets innehåll. Den används för att beskriva hur världen är organiserad och hur den ska visas. Man behöver inte fylla i den för hand, eftersom det hanteras av Ksirk skaleditor. Men för fullständighetens skull, beskrivs dess struktur här.

En onu-grupp innehåller ett antal landsposter, ett antal nationalitetsposter och till sist ett antal kontinentposter. Därefter innehåller diverse grupper beskrivningen av de olika figurerna, beskrivningen av de olika länderna, kontinenterna, nationaliteterna och målen.

Följande avsnitt beskriver innehållet i varje grupp.

Gruppen onu

Tabell 2.1. Posterna i onu-gruppen

PostnamnBetydelse
widthBredden på skalets karta.
heightHöjden på skalets karta.
skinpathSökvägen till skalet i förhållande till programmets datasökväg (t.ex. det förvalda skins/).
nb-countriesAntal länder (42 i standardskalet). Det ska finnas lika många landsgrupper nedan.
nb-nationalitiesAntal nationaliteter (6 i standardskalet). Det ska finnas lika många nationalitetsgrupper nedan.
nb-continentsAntal kontinenter (6 i standardskalet). Det ska finnas lika många kontinentgrupper nedan.
poolSökväg och namn på pool-filen i förhållande till skalets sökväg (t.ex. Images/pool.svg).
map-maskSökväg och namn på kartmaskfilen i förhållande till skalets sökväg (t.ex. Images/map-mask.png).
format-versionSkalfilformatets version (2.0).
nameNamnet på skalet som visas.
descDen långa beskrivningen av skalet.
fighters-flag-y-diffHöjdskillnaden mellan flaggor och kanonfigurer.
width-between-flag-and-fighterAntal bildpunkter mellan flaggans vänstra bildpunkt och den vanliga kanonens högra bildpunkt (när den inte skjuter eller exploderar).

Beskrivningsgrupperna för figurer

Varje typ av figur (flagga, infanterist, kavalleri, kanon, skjutande kanon och exploderande kanon) definieras av en grupp. Bara vissa figurer har breddinformation. Den används för relativ placering vid animering: när kanonerna skjuter eller exploderar ska de inte flyttas runt landets flagga under en strid.

Tabell 2.2. Grupposter för figurbeskrivning

PostnamnBetydelse
widthReferensbredden på flaggfigurernas ramar.
heightReferenshöjden på flaggfigurernas ramar.
framesAntal ramar i flaggfiguren.
versionsAntal versioner av flaggfigurerna.

Beskrivningsgrupper för länder

Varje land som listas i onu-gruppens landspost har sin egen grupp, vars beteckning är landets namn. Tabellen nedan listar posterna i dessa grupper.

Tabell 2.3. Landsposter

PostnamnBetydelse
idHeltalet med landets unika identifikationsnummer, måste börja från noll (0).
nameLandets visade namn.
<sprite>-pointVarje sorts figur (flagga, infanterist, etc.) i landet visas på en viss plats definierat av den här posten skapad av två heltal åtskilda av ett kommatecken.
neighboursListan av identifierare för grannarna till det aktuella landet.

Beskrivningsgrupper för nationaliteter

Varje nationalitet som listas i onu-gruppens nationalitetspost har sin egen grupp, vars beteckning är nationalitetens namn. Tabellen nedan listar posterna i dessa grupper.

Tabell 2.4. Nationalitetsposter

PostnamnBetydelse
nameNationalitetens namn (t.ex. Japan).
leaderNamnet som föreslås för spelaren som väljer nationaliteten.
flagNamnet på landets flaggfigurelement i onu SVG-filen.

Beskrivningsgrupper för kontinenter

Varje kontinent som listas i onu-gruppens kontinentpost har sin egen grupp, vars beteckning är kontinentens namn. Tabellen nedan listar posterna i dessa grupper.

Tabell 2.5. Kontinentposter

PostnamnBetydelse
nameKontinentens namn (t.ex. Afrika).
idKontinentens unika heltals-identifikationsnummer.
bonusAntal arméer som erhålls i slutet på omgången av spelaren som äger kontinentens alla länder.
continent-countriesListan över identifierare för länderna på den aktuella kontinenten.

Beskrivningsgrupper för mål

Varje mål som listas i onu-gruppens målpost har sin egen grupp, vars beteckning är målets namn. Tabellen nedan listar posterna i dessa grupper.

Tabell 2.6. Målposter

PostnamnBetydelse
typeMålets typ. Kan vara kontinenter, länder eller spelare.
nbArmiesByCountryStäller in minimalt antal arméer spelaren måste placera på varje land.
nbCountriesStäller in antal länder som spelaren måste äga.
nbCountriesFallbackFör måltypen spelare, om målets spelare dödas av någon annan, ställer det här in antal länder som spelaren måste erövra istället.
descEn fullständig textbeskrivning av målet med lämpliga platsmarkörer (ytterligare dokumentation behövs här).
continentsListan med kontinent-identifierare som spelaren måste erövra.

Katalogen Images

Katalogen innehåller knappar specifika för KsirK, och SVG-filen pool som innehåller kartan och alla figurer.

Filen pool.svg

SVG-filen innehåller kartan och alla spelets figurer. Varje element namnges så att spelet kan välja och återge var och en av dem separat.

Med standardskalet är figurerna flaggor, infanterister, kavalleri och kanoner. En infanterist representerar en armé, kavalleri är fem och kanoner är tio. Kanoner används också för att visa stridande arméer. Därför finns det tre olika sorters kanonfigurer: normala stillastående eller förflyttade, skjutande och exploderande kanoner.

Varje figurbild är sammanslagningen av objektets diverse olika vyer, och för varje vy, dess ramar. Vyerna organiseras vertikalt, och ramarna horisontellt. Var bilden ska delas i enskilda ramar beräknas genom att dela bildens höjd med antal vyer och dess bredd med antal ramar. Denna information hittas i filen onu.desktop.

Ett exempel på en figurbild: cannon.png

För arméfigurer finns det tre olika versioner, uppifrån och ner:

  • vända åt höger

  • vända åt vänster

  • vända framåt

För flaggor finns bara en version. Alla figurernas bakgrunder ska vara genomskinliga.

Ett exempel på en flaggfigurbild: italy.png

Tabell 2.7. Elementen i pool

ElementnamnExempelbildBetydelse
map
Karta över skalets värld. Länder kan ha godtyckliga former, men bör grupperas i kontinenter som kan kännas igen med blotta ögat, enligt plats eller färg.
italy
Flaggan för nationen italy. Det finns en sådan post för varje nation.
infantry
Ikon som representerar en armé.
cavalry
Ikon som representerar fem arméer.
cannon
Ikon som representerar tio arméer.
firing
Ikon som representerar arméer under en strid.
exploding
Ikon som representerar arméer när en strid förloras.
alaska
Formen av staten Alaska. Den används för att markera staten. Det finns en sådan form för varje stat. Dess färg används inte. Av den anledningen är färgen valfri.
reddices
De röda tärningarna används för att visa stridsresultat.
bluedices
De blåa tärningarna används för att visa stridsresultat.
mark1
Markeringen läggs till för stridande figurer för att visa antal arméer de representerar, här 1. Elementen mark2 och mark3 finns också.

Filen map-mask.png

Detta är en png-fil som också representerar skalets världskarta, men med kodade färger som gör det möjligt att unikt identifiera varje land. Länder måste åtminstone ha samma form som motsvarande länder i filen map.png, så att användare kan klicka var som helst i ett synligt land och markera det på ett bra sätt. Länder som består av små öar, som Indonesien på standardkartan, kan vara större än motsvarigheten i filen map.png för att förenkla markering av landet.

Ett exempel på en kartmask

Ett lands blåa komponent (med RGB-modellen) identifierar landet: index 0 är land 0 i filen onu.xml, index 1 är land 1, etc. Vitt (0xFFFFFF med RGB) identifierar frånvaro av ett land (hav eller, varför inte, ingenmansland).

Knappbilderna

Filnamnen är hårdkodade i källkoden, så de får inte ändras. Tabellen nedan visar alla knappar som måste tillhandahållas.

Tabell 2.8. Knapparna i det grafiska gränssnittet

BildFilnamnBetydelse
newNetGame.pngFörsöker gå med i ett nätverksspel.
recycling.pngNär alla spelare har placerat ut sina arméer är det möjligt att ändra fördelningen (betecknat omfördela). Knappen begär att utföra en sådan omfördelning.
recyclingFinished.pngVäljer att inte omfördela. För att omfördelningen verkligen ska avslutas måste knappen klickas i alla klientfönster.
nextPlayer.pngAvslutar den nuvarande spelarens tur och byter till nästa, eller går till nästa omgång om den nuvarande spelaren var sist.
attackOne.pngVäljer att börja ett anfall med en armé.
attackTwo.pngVäljer att börja ett anfall med två arméer.
attackThree.pngVäljer att börja ett anfall med tre arméer.
defendOne.pngVäljer att försvara ett anfallet land med en armé.
defendTwo.pngVäljer att försvara ett anfallet land med två arméer.
moveArmies.pngVäljer att börja flytta arméer mellan två länder (sista åtgärden i turen).

Katalogen Sounds

Katalogen innehåller tre ljudfiler:

  • roll.wav som spelas när arméer förflyttas

  • cannon.wav som spelas vid eldgivning och

  • crash.wav som spelas när en kanon exploderar