# Het handboek van &kappname;

Gael
Kleag
de Chalendar

    Kleag@free.fr

&Freek.de.Kruijf;&Ronald.Stroethoff;
2009
Gael de Chalendar
&FDLNotice;
2009-05-22
4.3

&ksirk; is een gecomputeriseerde versie van een bekend strategie spel. Het uiterlijk (skin) is volledig aan te passen. Deze handleiding legt hoe u vanaf nul nieuwe skins kunt aanmaken, met behulp van een bestandsbeheerder, een SVG afbeeldingsbewerker en &kappname;.

KDE
kdegames
spel
strategie
Risk
vrij
GPL
skin
editor

## Inleiding

&ksirk; is een gecomputeriseerde versie van een bekend strategie spel. Het uiterlijk (skin) is volledig aan te passen. Deze handleiding legt hoe u vanaf nul nieuwe skins kunt aanmaken, met behulp van een bestandsbeheerder, een SVG afbeeldingsbewerker en &kappname;.

Hier is een schermafdruk van &kappname; Schermafdruk

Er zijn drie belangrijke stappen om een nieuwe skin te creëren: de aanmaak van een mappenstructuur; de aanmaak van de graphics, alles samenvoegen in een SVG-bestand; en tenslotte de plaatsing van de "sprites en naamgeving met behulp van &kappname;.

## De creatie van een &ksirk; skin

De skin van &ksirk; is volledig aanpasbaar. Voor diegene met grafische capaciteiten is het creëren van een nieuwe skin net zo eenvoudig als het kopiëren van een bestaand, bewerken of wijzigen van de grafische elementen en het bijwerken van de data in een .desktop configuratiebestand, wat u allemaal kunt doen met &kappname;. Een laatste stap is het bestand met de beschrijving, hoe te installeren, te bewerken.

Alle voorbeelden (tekst en afbeeldingen) komen uit de standaard skin van &ksirk;

### Structuur van mappen en bestanden

- Data/ : Data gebruikt door het programma voor het hanteren van skin-afbeeldingen.

  - CMakeLists.txt : Beschrijft wat te installeren.

  - onu.desktop : hoofdbestand voor de beschrijving van de skin. Zie zijn beschrijving hieronder.

- Images/ : De afbeeldingen van de skin (plattegrond, sprites, etc.)

  - CMakeLists.txt : Beschrijft wat te installeren.

  - pool.svg : de plattegrond en alle in de skin gebruikte sprites.

  - map-mask.png : de afbeelding waarmee het programma kan bepalen boven welk land de muis is tijdens het spel (zie hieronder).

  - *.png : de andere afbeeldingen hier zijn pictogrammen voor de knoppen.

- CMakeLists.txt : beschrijft wat te installeren.

- Sounds/ : geluidsbestanden voor de skin.

#### De map Data

Deze map heeft maar één bestand, world.desktop. Dit bestand geeft een beschrijving van de inhoud van de skin. Het wordt gebruikt voor een beschrijving van de organisatie van de wereld en hoe deze te tonen. U hoeft het niet handmatig in te vullen omdat dat door &kappname; wordt gedaan. Maar voor de compleetheid, beschrijven we hier toch zijn structuur.

In een onu-groep zitten een aantal landen, een aantal nationaliteiten en tenslotte een aantal continenten. In de verschillende groepen zitten de beschrijvingen van de sprites, de beschrijvingen van de landen, continenten, nationaliteiten en doelen.

De volgende secties beschrijven de inhoud van elke groep.

##### De onu-groep

###### De onderdelen van de onu-groep

Items | Beschrijving
--- | ---
breedte | De breedte van de skin
hoogte | De hoogte van de skin
skinpad | Het pad van de skin relatief ten opzichte van programma-data (b.v. skins/default)
nb-countries | Het aantal landen (42 in de standaard skin). Het zou hetzelfde aantal landen moeten zijn als het aantal country-groepen hieronder
nb-nationalities | Het aantal nationaliteiten (6 in de standaard skin). Het zou hetzelfde aantal nationaliteiten moeten zijn als het aantal nationality-groepen hieronder
nb-continents | Het aantal continenten (6 in de standaard skin). Het zou hetzelfde aantal continenten moeten zijn als het aantal continent-groepen hieronder
pool | Het pad en naam van het pool-bestand relatief ten opzichte van skin-pad (b.v. Images/pool.svg)
map-mask | Het pad en naam van het map mask-bestand relatief ten opzichte van skin-pad (bijv. Images/map-mask.png)
formaatversie | De versie van het bestandsformaat van de skin (2.0)
naam | De getoonde naam van de skin
beschr | De uitgebreide beschrijving van de skin
fighters-flag-y-diff | Het verschil in hoogte tussen de sprites van vlaggen en kanonnen
width-between-flag-and-fighter | Het aantal pixels tussen het meest linkse pixel van de vlag en het meest rechtse pixel van een eenvoudig kanon (niet schietend of exploderend)

##### De beschrijvende groepen van sprites

Elke type sprite (vlag, infanterie, cavalerie, kanon, schietend kanon en exploderend kanon) is gedefinieerd door een groep. Alleen voor enkele sprites moet u een breedte opgeven. Deze opgave wordt gebruikt voor relatieve plaatsing tijdens animaties: De kanonnen, schietend of exploderend zullen niet "bewegen" rond de vlag van het land tijdens het gevecht.

###### De onderdelen van een sprite-groep

Ingang | Beschrijving
--- | ---
breedte | De standaardbreedte van de sprite-frames van de vlag
hoogte | De standaardhoogte van de sprite-frames van de vlag
frames | Het aantal frames van de sprite
versies | Het aantal versies van de vlag sprites

##### De landen beschrijvende groepen

Elk land dat in de onu-groep voor komt, elk land heeft zijn eigen groep waarvan het label de naam van het land is. De tabel hieronder geeft een lijst met items van deze groepen.

###### De onderdelen van een land-groep

Items | Beschrijving
--- | ---
id | Het unieke identificatie van het land (dat een geheel getal moet zijn), moet bij nul (0) beginnen
naam | De getoonde naam van het land
<sprite>-point | Elke soort sprite (vlag, infanterist, enz.) in het land wordt op een bepaalde positie getoond die is gedefinieerd door deze regel met twee door een komma gescheiden integers
neighbours | De lijst met ID´s van de buren van het geselecteerde land

##### De nationaliteit beschrijvende groepen

Elke nationaliteit die in de onu-groep voor komt, elke nationaliteit heeft zijn eigen groep waarvan het label de naam van de nationaliteit is. De tabel hieronder geeft een lijst met items van deze groepen.

###### De onderdelen van de nationaliteit-groep

Items | Beschrijving
--- | ---
naam | De naam van de nationaliteit (bijv. Japan)
leider | De naam die aan de speler zal worden voorgesteld die deze nationaliteit kiest
vlag | De landsvlag-sprite-naam in het onu-SVG--bestand

##### De continent beschrijvende groepen

Elk continent dat in de onu-groep voor komt, elk continent heeft zijn eigen groep waarvan het label de naam van het continent is. De tabel hieronder geeft een lijst met items van deze groepen.

###### De onderdelen van de continent-groep

Items | Beschrijving
--- | ---
naam | De naam van het continent (bijv. Africa)
id | Het unieke identificatie van het continent (dat een geheel getal moet zijn)
bonus | Het aantal door de speler verkregen legers, die aan het eind van een beurt alle landen in een continent bezit
continent-countries | De lijst met ID´s van de landen in dat continent

##### De groepen met beschrijvingen van de doelen

Elk doel dat in de onu-groep voor komt, elk doel heeft zijn eigen groep waarvan het label de naam van het doel is. De tabel hieronder geeft een lijst met items van deze groepen.

###### Doelen

Items | Beschrijving
--- | ---
type | Het soort doel. Dat kunnen continenten, landen of een speler zijn
nbArmiesByCountry | het minimum aantal legers dat de speler in elk land moet plaatsen
nbCountries | het aantal landen dat de speler moet bezitten
nbCountriesFallback | Voor het type spelersdoel, als de doelspeler is gedood door iemand anders, dan is dit het aantal landen dat de speler in plaats daarvan moet gaan veroveren
beschr | Een volledige tekstbeschrijving van het doel met toepasselijke plaatshouders (meer documentatie is hier nodig)
continenten | De lijst met continent-ID´s die de speler moet gaan veroveren

#### De map Images

In deze map vindt u de knoppen die speciaal voor &ksirk; zijn en het pool-SVG-bestand met de kaart en alle sprites.

##### Het bestand pool.svg

U vindt in dit SVG-bestand de kaart en alle sprites van het spel. Elk element is zodanig genaamd dat het spel elk apart kan selecteren en weergeven.

In de standaard skin, vindt u vlaggen, infanterie, cavalerie en kanonnen als sprites. Infanterie stelt één leger voor, cavalerie vijf en kanonnen tien. Kanonnen zijn ook gebruikt om vechtende legers voor te stellen. Daarom zijn er drie verschillende kanonnen-sprites: normaal statische of bewegend kanon, een vurende en een exploderende.

Elke sprite-afbeelding is een verzameling van verschillende weergaven van het object en elke weergave is een apart frame. Weergaven zijn verticaal georganiseerd en de frames horizontaal. De verdeling van de afbeelding in aparte frames kunt u vinden door de hoogte van de afbeelding te delen door het aantal weergaven en de breedte door het aantal frames. Deze gegevens zijn te vinden in het bestand onu.desktop.

Een voorbeeld van een sprite-afbeelding: cannon.png

Voor leger-sprites, zijn er drie verschillende weergaven, van boven naar onder:

- rechts kijkend

- links kijkend en

- vooraanzicht

Voor vlaggen is er maar een weergave. Alle achtergronden van sprites moeten op transparant gezet zijn.

Een voorbeeld van een sprite-afbeelding voor vlag: italy.png

###### De elementen van de pool

Elementnaam | Voorbeeld afbeelding | Beschrijving
--- | --- | ---
kaart |  | Kaart van skins's wereld. Landen kunnen willekeurige vormen hebben, maar moeten wel in op het oog herkenbare continenten gegroepeerd zijn, alleen door de locatie of ook door kleur
italië |  | De vlag van het land Italië. Een dergelijk item is er voor elke nationaliteit.
infanterie |  | Pictogram dat een leger voorstelt
cavalerie |  | Pictogram dat vijf legers voorstelt
geschut |  | Pictogram dat tien legers voorstelt
vuren |  | Pictogram dat legers voorstelt tijdens een gevecht
exploderen |  | Pictogram dat een leger voorstelt dat een gevecht verliest
Alaska |  | De vorm van het land Alaska. Dit wordt gebruikt om het land te markeren. Voor elk land is er een dergelijke vorm. De kleur ervan is niet gebruikt. Daarom is kleurkeuze vrij.
reddices |  | De rode dobbelstenen zijn gebruikt om het resultaat van het gevecht te tonen
bluedices |  | De blauwe dobbelstenen zijn gebruikt om het resultaat van het gevecht te tonen
mark1 |  | Deze markering wordt toegevoegd aan sprites in gevecht om het aantal legers dat ze voorstellen weer te geven, hier 1. Er is ook een mark2 en een mark3 markering.

##### Het bestand map-mask.png

Dit is een png-bestand dat ook de kaart van skin´s wereld voorstelt, maar met gecodeerde kleuren zodat iemand elk land apart kan identificeren. Landen moeten tenminste dezelfde vorm hebben als de bijbehorende landen op de kaart. Het png-bestand is zodanig dat gebruikers overal in een zichtbaar land kunnen klikken en de juiste selecteren. Landen met kleine eilanden, zoals Indonesië, in de standaard kaart kunnen groter zijn dan het equivalent in het bestand map.png om de selectie van het land mogelijk te maken. Een voorbeeld map-mask

De blauwe component (in het RGB model) van een landskleur identificeert het land: index 0 is land 0 in het bestand onu.xml, index 1 is land 1, &etc; Wit (0xFFFFFF in RGB) identificeert de afwezigheid van een land (zeeën of, waarom ook niet, niemandsland ).

##### De knop-afbeeldingen

De bestandsnamen zijn in de code vast ingesteld, u moet ze daarom niet wijzigen. De tabel hieronder toont alle knoppen die aanwezig moeten zijn.

###### De knoppen van de &GUI;

Afbeelding | Bestandsnaam | Beschrijving
--- | --- | ---
| newNetGame.png | Probeert aan een netwerkspel deel te nemen
| recycling.png | Nadat alle spelers hun legers hebben geplaatst, is het mogelijk om de verdeling te wijzigen (recycling genaamd). Deze knop vraagt om een dergelijke herverdeling te doen
| recyclingFinished.png | Gekozen om niet te herverdelen. In alle gebruikersvensters moet op deze knop geklikt zijn om echt de distributie te beëindigen
| nextPlayer.png | Beëindigt de beurt van de huidige speler en schakelt naar de volgende of naar de volgende ronde als de huidige speler de laatste was
| attackOne.png | Kiest voor het starten van een aanval met een leger
| attackTwo.png | Kiest voor het starten van een aanval met twee legers
| attackThree.png | Kiest voor het starten van een aanval met drie legers
| defendOne.png | Kiest voor het verdedigen van een aangevallen land met één leger
| defendTwo.png | Kiest voor het verdedigen van een aangevallen land met twee legers
| moveArmies.png | Kiest om legers tussen twee landen te verplaatsen (laatste actie in de beurt)

#### De map Sounds

In deze map zijn drie geluidsbestanden aanwezig:

- roll.wav afgespeeld bij het verplaatsen van legers

- cannon.wav afgespeeld bij het schieten en

- crash.wav afgespeeld bij het exploderen van een kanon

### Het gebruik van &kappname;

Na het creëren van de graphics in de juiste map en het SVG bestand, moet u landen, spelers enz. creëren en ze associëren met het juiste SVG-element in de pool. Dit kunt u doen met &kappname;. Merk op dat elk gedeelte van dit programma door tooltips en contextuele hulp zelf beschrijvend is en meestal via de sneltoets Ctrl+F1 op te zoeken is.

Hier is een schermafdruk van &kappname; Schermafdruk

## Overzicht van de opdrachten

### Het hoofdvenster van &kappname;

#### De knoppen

Laden Laden

  Zal het programma een bestaande skin laten laden.

Opslaan Opslaan

  Zal de huidige bewerkte skin opslaan

## Handleiding voor ontwikkelaars van &kappname;

Ga naar http://api.kde.org/ voor de documentatie van de API.

## Vragen en antwoorden

&updating.documentation;

## Dankbetuiging en licentie

&kappname;

Auteursrecht programma 2009 Gael de Chalendar kleag@free.fr

Documentatie copyright 2009 Gael de Chalendar kleag@free.fr

&meld.fouten;&vertaling.freek;&vertaling.ronald;&nagelezen.freek; &underFDL; &underGPL;

## Installatie

### Hoe &kappname; te verkrijgen

&install.intro.documentation;

### Compilatie en installatie

&install.compile.documentation;

&documentation.index;