# Het handboek van &i18n-ksirkskineditor;

Gaël
Kleag
de Chalendar

    Kleag@free.fr

&Freek.de.Kruijf;&Ronald.Stroethoff;
2009
Gaël de Chalendar
&FDLNotice;
2021-10-14
KDE Gear 21.08

&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 &i18n-ksirkskineditor;.

KDE
editor
vrij
spel
GPL
risk
skin
strategie

## 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 &i18n-ksirkskineditor;.

Hier is een schermafdruk van &i18n-ksirkskineditor;
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 "figuurtjes en naamgeving met behulp van &i18n-ksirkskineditor;.

## 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 &i18n-ksirkskineditor;. 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, figuurtjes, &etc;)

  - `CMakeLists.txt` : beschrijft wat te installeren.

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

  - `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 &i18n-ksirkskineditor; 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 figuurtjes, 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 (&eg; `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 (&eg; `Images/pool.svg`).
`map-mask` | Het pad en naam van het map mask-bestand relatief ten opzichte van skin-pad (&eg; `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 figuurtjes 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 figuurtjes

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 figuurtjes-groep

Items | Beschrijving
--- | ---
`breedte` | De standaardbreedte van de figuurtjesframes van de vlag.
`hoogte` | De standaardhoogte van de figuurtjesframes van de vlag.
`frames` | Het aantal frames van het figuurtje.
`versies` | Het aantal versies van de vlagfiguurtjes.

##### 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` | De unieke identificatie van het land (dat een geheel getal moet zijn), moet bij nul (0) beginnen.
`naam` | De getoonde naam van het land.
`<figuurtje>-punt` | Elke soort figuurtje (vlag, infanterist, &etc;) 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 (&eg; `Japan`).
`leider` | De naam die aan de speler zal worden voorgesteld die deze nationaliteit kiest.
`vlag` | De landsvlag-figuurtje-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 (&eg; `Afrika`).
`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 op 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 instellen dat de speler in elk land moet plaatsen.
`nbCountries` | Het aantal landen instellen 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 figuurtjes.

##### Het bestand `pool.svg`

U vindt in dit &SVG;-bestand de kaart en alle figuurtjes 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 figuurtjes. 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-figuurtjes: normaal statische of bewegend kanon, een vurende en een exploderende.

Elk figuurtje-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 figuurtje-afbeelding: `cannon.png`

Voor leger-figuurtjes, 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 figuurtjes moeten op transparant gezet zijn.

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

###### De elementen van de pool

Elementnaam | Voorbeeldafbeelding | Beschrijving
--- | --- | ---
`kaart` |  | Kaart van de wereld van de figuurtjes. 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 figuurtjes 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 het kaartbestand `map.png`. 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 landenkleur 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 &i18n-ksirkskineditor;

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

Hier is een schermafdruk van &i18n-ksirkskineditor;
Schermafdruk

## Overzicht van de opdrachten

### Het hoofdvenster van &i18n-ksirkskineditor;

#### De knoppen

Laden Laden…

  Zal het programma een bestaande skin laten laden.

Opslaan Opslaan

  Zal de huidige bewerkte skin opslaan.

## Handleiding voor ontwikkelaars van &i18n-ksirkskineditor;

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

## Vragen en antwoorden

&updating.documentation;

## Dankbetuiging en licentie

&ksirkskineditor;

Programma copyright 2009 Gaël de Chalendar kleag@free.fr

Documentatie copyright 2009 Gaël de Chalendar kleag@free.fr

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

&documentation.index;