Capítol 2. Crear una aparença del KsirK

Es poden crear aparences del KsirK que canviaran totalment el seu aspecte. Per als que tenen capacitats gràfiques, la creació d'una aparença nova és tan senzilla com copiar una existent, editar-la o canviar els gràfics i actualitzar les dades en un fitxer de configuració .desktop, el qual es realitza utilitzant l'Editor d'aparences per al KsirK. Un últim pas és editar el fitxer que descriu què instal·lar.

Tots els exemples (text i imatges) es prenen de l'aparença predeterminada del KsirK.

Estructura de les carpetes i fitxers

  • Data/: les dades utilitzades pel programa per a manejar les imatges de l'aparença.

    • CMakeLists.txt: descriu què instal·lar.

    • onu.desktop: fitxer principal per a la descripció de l'aparença. Vegeu la seva descripció a continuació.

  • Images/: les imatges de l'aparença (mapa, sprites, etc.)

    • CMakeLists.txt: descriu què instal·lar.

    • pool.svg: el mapa i tots els sprites utilitzats en aquesta aparença.

    • map-mask.png: la imatge que permet que el programa trobi en quin país es troba el ratolí durant el joc (vegeu més avall).

    • *.png: aquestes imatges són les dels botons.

  • CMakeLists.txt: descriu què instal·lar.

  • Sounds/: els fitxers de so per a l'aparença.

La carpeta de dades

Aquesta carpeta conté només un fitxer, world.desktop. Aquest fitxer és una descripció del contingut de l'aparença. S'utilitza per a descriure l'organització del món i com mostrar-la. No heu d'omplir-lo manualment, ja que serà manejat per l'Editor d'aparences per al KsirK. Però, pel bé de la integritat, ara descriurem la seva estructura.

Un grup onu conté una sèrie d'entrades de països, una sèrie d'entrades de nacionalitat i, finalment, diverses entrades de continents. Després, diversos grups que contenen la descripció dels diferents sprites, la descripció dels diferents països, continents, nacionalitats i objectius.

Les seccions següents descriuen el contingut de cada grup.

El grup onu

Taula 2.1. Les entrades del grup onu

Nom de l'entradaSignificat
widthL'amplada del mapa de l'aparença.
heightL'alçada del mapa de l'aparença.
skinpathEl camí de l'aparença en relació amb el camí de les dades de l'aplicació (p. ex., skins/default).
nb-countriesEl nombre de països (42 a l'aparença predeterminada). A continuació, hi haurà d'haver el mateix nombre de grups de països.
nb-nationalitiesEl nombre de nacionalitats (6 a l'aparença predeterminada). A continuació, hi haurà d'haver el mateix nombre de grups de nacionalitats.
nb-continentsEl nombre de continents (6 a l'aparença predeterminada). A continuació, hi haurà d'haver el mateix nombre de grups de continents.
poolEl camí i el nom del fitxer de lloc relatiu al camí de l'aparença (p. ex., Images/pool.svg).
map-maskEl camí i el nom del fitxer de màscara de mapa relatiu al camí de l'aparença (p. ex., Images/map-mask.png).
format-versionLa versió del format de fitxer de l'aparença (2.0).
nameEl nom a mostrar de l'aparença.
descLa descripció llarga de l'aparença.
fighters-flag-y-diffLa diferència d'alçada entre els sprites de banderes i canons.
width-between-flag-and-fighterEl nombre de píxels entre el píxel més a l'esquerra de la bandera i el píxel més a la dreta del canó senzill (quan no dispara ni hi ha una explosió).

La descripció dels grups de sprites

Cada tipus de sprite (bandera, infanteria, cavalleria, canó, canons que disparen i canons que exploten) es defineix per un grup. Només alguns sprites tenen una entrada d'amplada. Aquesta entrada s'utilitza per al posicionament relatiu durant les animacions: els canons, en disparar o explotar no s'han de «moure» al voltant de la bandera del país durant la lluita.

Taula 2.2. Entrades de descripció dels grups de sprites

Nom de l'entradaSignificat
widthL'amplada de referència dels fotogrames de l'sprite de bandera.
heightL'alçada de referència dels fotogrames de l'sprite de bandera.
framesEl nombre de fotogrames de l'sprite.
versionsEl nombre de versions dels sprites de bandera.

Els grups i descripcions dels països

Cada país llistat en el grup onu, l'entrada de països té el seu propi grup, l'etiqueta del qual és el nom del país. La taula següent llista les entrades d'aquests grups.

Taula 2.3. Entrades del país

Nom de l'entradaSignificat
idEl nombre enter d'identificació única de país, ha de començar per zero (0).
nameEl nom a mostrar del país.
<sprite>-pointCada tipus de sprite (bandera, infanteria, etc.) en el país es mostrarà en una posició definida per aquesta entrada feta de dos nombres enters separats per una coma.
neighboursLa llista dels ID dels veïns del país actual.

Els grups i descripcions de les nacionalitats

Cada nacionalitat llistada en el grup onu, l'entrada de nacionalitats té el seu propi grup, l'etiqueta del qual és el nom de la nacionalitat. La taula següent llista les entrades d'aquests grups.

Taula 2.4. Entrades de la nacionalitat

Nom de l'entradaSignificat
nameEl nom de la nacionalitat (p. ex., Japan).
leaderEl nom que es proposarà al jugador que triï aquesta nacionalitat.
flagEl nom de l'element sprite de bandera del país en el fitxer SVG onu.

Els grups i descripcions dels continents

Cada continent llistat en el grup onu, l'entrada de continents té el seu propi grup, l'etiqueta del qual és el nom del continent. La taula següent llista les entrades d'aquests grups.

Taula 2.5. Entrades dels continents

Nom de l'entradaSignificat
nameEl nom del continent (p. ex., Àfrica).
idEl nombre enter d'identificació única del continent.
bonificacióEl nombre de batallons obtinguts al final del torn pel jugador que posseeixi tots els països del continent.
continent-countriesLa llista dels ID dels països dins del continent actual.

Els grups i descripcions dels objectius

Cada objectiu llistat en el grup onu, l'entrada d'objectius té el seu propi grup, l'etiqueta del qual és el nom de l'objectiu. La taula següent llista les entrades d'aquests grups.

Taula 2.6. Entrades de l'objectiu

Nom de l'entradaSignificat
typeEl tipus d'objectiu. Pot ser un continent, país o jugador.
nbArmiesByCountryEstableix el nombre mínim de batallons que el jugador haurà de posar a cada país.
nbCountriesEstableix el nombre de països que ha de posseir el jugador.
nbCountriesFallbackPer a un tipus d'objectiu del jugador, si el jugador objectiu és assassinat per un altre, això establirà el nombre de països que el jugador haurà de conquerir.
descUna descripció completa de text de l'objectiu amb marcadors de posició adequats (aquí cal més documentació).
continentsLa llista dels ID dels continents que el jugador haurà de conquerir.

La carpeta de les imatges

Aquesta carpeta conté els botons específics del KsirK i el fitxer SVG de lloc que conté el mapa i tots els sprites.

El fitxer pool.svg

Aquest fitxer SVG conté el mapa i tots els sprites del joc. Cada element s'anomena de tal manera que el joc pot seleccionar i representar per separat cadascun d'ells.

A l'aparença predeterminada, els sprites són banderes, infanteria, cavalleria i canó. La infanteria representa un batalló, cinc la cavalleria i deu els canons. Els canons també s'utilitzen per a mostrar els exèrcits en lluita. És per això que hi ha tres tipus de sprites de canó: estàtic o movent-se normal, disparant i explotant.

Cada imatge de sprite és la concatenació de les diferents vistes de l'objecte i per a cada vista, els seus fotogrames. Les vistes s'organitzen verticalment i els fotogrames horitzontalment. On retallar la imatge en fotogrames individuals es troba dividint l'alçada de la imatge pel nombre de vistes i l'amplada pel nombre de fotogrames. Aquestes dades es troben en el fitxer onu.desktop.

Un exemple d'una imatge sprite: cannon.png

Per als sprites dels batallons, hi ha tres vistes diferents, de dalt a baix:

  • mirant a la dreta

  • mirant a l'esquerra i

  • de cara

Per a les banderes, només hi ha una vista. Tots els fons dels sprites s'han d'establir a transparent.

Un exemple d'una imatge sprite de bandera: italy.png

Taula 2.7. Els elements del lloc

Nom de l'elementImatge de mostraSignificat
map
Mapa del món de les aparences. Els països poden tenir formes arbitràries, però s'han d'agrupar en continents reconeixibles a simple vista, només per la ubicació o pel color.
italy
La bandera de la nació italiana. Hi ha una entrada d'aquest tipus per a cada nació.
infantry
Icona que representa un batalló.
cavalry
Icona que representa cinc batallons.
cannon
Icona que representa deu batallons.
firing
Icona que representa els batallons durant una lluita.
exploding
Icona que representa els batallons en perdre una lluita.
alaska
La forma del país Alaska. Això s'utilitza per a ressaltar el país. N'hi ha una per a cada país. El seu color no s'utilitza. Com a tal, el color és lliure.
reddices
Els daus vermells mostren el resultat de les batalles.
bluedices
Els daus blaus mostren el resultat de les batalles.
mark1
Aquesta marca s'afegeix en els sprites de lluita per a mostrar la quantitat de batallons que representen, aquí 1. També hi ha els elements mark2 i mark3.

El fitxer map-mask.png

Aquest fitxer PNG també representa el mapa del món en l'aparença, però amb colors codificats que permeten identificar de manera única cada país. Els països hauran de tenir almenys la mateixa forma que els països corresponents en el fitxer map.png, de manera que els usuaris puguin fer clic a qualsevol lloc d'un país visible i seleccionar-lo bé. Els països, com les illes petites, Indonèsia en el mapa predeterminat pot ser més gran que el seu equivalent en el fitxer map.png per a facilitar la selecció del país.

Mostra d'una màscara de mapa

El component blau (en el model RGB) del color d'un país, l'identifica: l'índex 0 és el país 0 en el fitxer onu.xml, l'índex 1 és el país 1, etc. El blanc (0xFFFFFF en RGB) identifica l'absència del país (es veu o, per què no, la terra de ningú).

Les imatges dels botons

Els noms de fitxer estan codificats en el codi, i per això no s'haurien de modificar. La taula següent mostra tots els botons que s'han de proporcionar.

Taula 2.8. Els botons de la IGU

ImatgeNom del fitxerSignificat
newNetGame.pngIntenta unir-se a una partida en xarxa.
recycling.pngUna vegada tots els jugadors hagin col·locat els seus batallons, és possible modificar les distribucions (anomenat reciclatge). Aquest botó demana realitzar aquesta redistribució.
recyclingFinished.pngTria no redistribuir. Totes les finestres clients han de fer clic en aquest botó per a acabar realment la distribució.
nextPlayer.pngFinalitza el torn actual i canvia al jugador següent o al torn següent si el jugador actual era l'últim.
attackOne.pngTria iniciar un atac amb un batalló.
attackTwo.pngTria iniciar un atac amb dos batallons.
attackThree.pngTria iniciar un atac amb tres batallons.
defendOne.pngTria defensar un país atacat amb un batalló.
defendTwo.pngTria defensar un país atacat amb dos batallons.
moveArmies.pngTria iniciar el moviment dels batallons entre dos països (última acció en el torn).

La carpeta de sons

Aquesta carpeta conté tres fitxers de so:

  • roll.wav es reprodueix quan es mouen els batallons

  • cannon.wav es reprodueix quan es dispara i

  • crash.wav es reprodueix quan explota un canó