# Das Handbuch zu KsirK-Design-Editor

## Einführung

&ksirk; ist eine computergestützte Version eines sehr bekannten Strategiespiels und kann vollständig neue Designs erhalten. Dieses Handbuch beschreibt die Erstellung neuer Designs von Grund auf (unter Verwendung einer Dateiverwaltung, `.svg`-Bearbeitungsprogramms und KsirK-Design-Editor).

Bildschirmfoto von KsirK-Design-Editor Bildschirmfoto

Es sind drei Schritte für die Erstellung eines neuen Designs notwendig: Erstellen der Ordnerstruktur, Erstellung der Grafiken (zusammengefasst in einer `.svg`-Datei) und schließlich das Platzieren der Animationen und Benennen der Elemente mit KsirK-Design-Editor.

## Neues &ksirk;-Design erstellen

Für &ksirk; können komplett neue Designs erstellt werden. Für künstlerisch Veranlagte ist das Erstellen neuer Designs so einfach wie das Kopieren, Bearbeiten oder Austauschen bestehender Grafiken und das Aktualisieren der Daten in der `.desktop`-Einrichtungsdatei, wozu KsirK-Design-Editor dient. Ein letzter Schritt ist das Bearbeiten der Installationsdatei.

Alle Beispiele (Text und Bilder) sind vom Standard-Design von &ksirk;.

### Struktur der Ordner und Dateien

- Data/: Daten zur Einbindung der Bilder des Designs.

  - `CMakeLists.txt`: Beschreibung der Installationsabläufe.

  - `world.desktop`: Die Beschreibung des Designs. Der Aufbau wird später geschildert.

- Images/: Die Bilder des Designs (Karte, Animationen, ...)

  - `CMakeLists.txt`: Beschreibung der Installationsabläufe.

  - `pool.svg`: Die Karte und Animationen des Designs.

  - `map-mask.png`: Dieses Bild ermöglicht es dem Programm während es Spiels das richtige Land zu finden, wenn sich der Mauszeiger darüber befindet (Erklärung erfolgt später).

  - `*.png`: Diese Bilder sind für die Knöpfe.

- `CMakeLists.txt/`: Beschreibung der Installationsabläufe.

- Sounds/: Die Klänge des Designs.

#### Data/

Dieser Ordner enthält nur eine Datei (`world.desktop`). Sie ist eine Beschreibung für den Inhalt des Designs und wird zur Beschreibung des Aufbaus und der Anzeige der Welt verwendet. Sie muss nicht eigenhändisch aufgebaut werden, sondern wird von KsirK-Design-Editor automatisch erstellt. Für die Vollständigkeit wird der folgende Strukturaufbau vorgestellt:

Unter [onu] sind die grundsätzlichen Einträge für die Länder, Nationen und Kontinente definiert. Die verschiedenen anderen Gruppen enthalten die Beschreibung der Animationen, Länder, Kontinente, Nationen und Spielziele.

Die folgenden Abschnitte beschreiben den Inhalt jeder Gruppe.

##### [onu]

##### Aufbau von [onu]

Eintrag | Bedeutung
width | Die Breite der Karte (in px).
height | Die Höhe der Karte (in px).
skinpath | Der Pfad zum Design - relativ zum Programm - (z. B. skins/default).
nb-countries | Die Anzahl der Länder (42 im standardmäßigen Design). Es müssen alle Länder definiert werden.
nb-nationalities | Die Anzahl der Nationen (6 im standardmäßigen Design). Es müssen alle Nationen definiert werden.
nb-continents | Die Anzahl der Kontinente (6 im standardmäßigen Design). Es müssen gleich viele continent-Gruppen erstellt werden.
pool | Der Pfad und Name der zusammengefassten Datei - relativ zum Design (z. B. Images/pool.svg).
map-mask | Der Pfad und Name der Datei map-mask - relativ zum Design (z B. Images/map-mask.png).
format-version | Die Version der Design-Datei (2.0)
name | Der angezeigte Name für das Design.
desc | Die ausführliche Beschreibung des Designs.
fighters-flag-y-diff | Der Höhenunterschied zwischen den Animationen der Flaggen und Kanonen.
width-between-flag-and-fighter | Die Anzahl der Pixel zwischen den letzten linken Pixel der Flagge und den letzten rechten Pixel der einfachen Kanone (weder schießend noch explodierend).

##### Animationen

Jede Animation (Flagge, Infanterist, Kallavarist, Kanone, Schuss und Explosion) wird durch eine eigene Gruppe ([flag], [infantry], [cavalry], [cannon], [firing] und [exploding]) definiert. Die Option „width“ wird zur relativen Positionierung während der Animation genutzt. D. h., dass sich die Kanonen, Schüsse und Explosionen während des Kampfes nicht um die Flagge des Landes „bewegen“.

##### Aufbau der Animationsbeschreibungen

Eintrag | Bedeutung
width | Die Bezugsbreite für die Bilder der Flaggenanimation.
height | Die Bezugshöhe der Bilder für die Flaggenanimation.
frames | Die Anzahl der Bilder für die Animation.
versions | Die Anzahl der Darstellungen für die Flaggenanimation.

##### Länder

Jedes in [onu] aufgeführte Land ist eigens definiert ([Land]). Die Tabelle zeigt die entsprechenden Einträge.

##### Definition der Länder

Eintrag | Bedeutung
id | Die einzigartige Identifikationsnummer (Ganzzahl) für das Land (beginnend mit 0)
name | Der angezeigte Ländername.
<sprite>-point | Jede Animation (Flagge, Infanterist, usw.) wird an einer bestimmten Stelle des Landes angezeigt. Diese wird durch zwei Ganzzahlen definiert (getrennt durch Komma).
neighbours | Die benachbarten Länder (Identifikationsnummern oder [Land] mit Komma getrennt).

##### Nationen

Jede in [onu] aufgeführte Nation ist eigens definiert ([Nation]). Die Tabelle zeigt die entsprechenden Einträge.

##### Definition der Nationen

Eintrag | Bedeutung
name | Der Name der Nation (z. B. Japan)
leader | Der voreingestellte Name des Staatschefs.
flag | Der Name der Flaggenanimation für das jeweilige Land in der Datei `pool.svg`.

##### Kontinente

Jeder in [onu] aufgeführter Kontinent ist eigens definiert ([Kontinent]). Die Tabelle zeigt die entsprechenden Einträge.

##### Definition der Kontinente

Eintrag | Bedeutung
name | Der Name des Kontinents (z. B. Afrika)
id | Die einzigartige Identifikationsnummer (Ganzzahl) für den Kontinent (beginnend mit 1)
bonus | Die Anzahl der Zusatzeinheiten am Rundenende für das Eigentum an allen Ländern des Kontinents.
continents-countries | Die Länder des Kontinents (Identifikationsnummern oder [Land] mit Komma getrennt).

##### Spielziele

Jedes in [onu] aufgeführte Spielziel ist eigens definiert ([Ziel]). Die Tabelle zeigt die entsprechenden Einträge.

##### Definition der Spielziele

Eintrag | Bedeutung
type | Die Art des Spielziels. Es kann sich hierbei um Kontinente, Länder oder Spieler handeln (continents, countries oder player).
nbArmiesByCountry | Die minimale Anzahl an Einheiten, die sich auf jedem Land befinden muss.
nbCountries | Die Anzahl der Länder, die erobert werden müssen.
nbCountriesFallback | Für Spieler-Ziele: Sollte der genannte Spieler von einem anderen vernichtet werden, muss der Spieler mit diesem Spielziel stattdessen so viele Länder erobern.
desc | Die Beschreibung des Spielziels mit Platzhaltern in einem ganzen Satz (weitere Ausführungen folgen).
continents | Für Kontinent-Ziele: Die zu erobernden Kontinente ([Identifikationsnummer] oder [Land] mit Komma getrennt).

#### Images/

Dieser Ordner enthält die spezifischen Knöpfe für &ksirk; und die zusammengefasste `.svg`-Datei mit der Karte und den Animationen.

##### `pool.svg`

Diese `.svg`-Datei enthält die Karte und alle Animationen des Spiels. Jedes Element ist eigens bezeichnet, damit die Animationen richtig ausgewählt und wiedergegeben werden können.

Im Standard-Design bilden die Flaggen, Infanteristen, Kavallerie und Kanone die Animationen. Der Infanterist repräsentiert eine Einheit (Kavallerie fünf und Kanonen zehn Einheiten). Die Kanonen werden ebenfalls zur Anzeige der kämpfenden Einheiten verwendet. Das ist der Grund, dass für die Kanonen drei Animationen existieren (stehende oder bewegende, schießende und explodierende).

Jedes Animationsbild ist die Zusammenfassung der unterschiedlichen Ansichten des Objekts und für jede Ansicht die der Einzelbilder. Die Ansichten sind vertikal und die Einzelbider horizontal angeordnet. An welchen Stellen das Gesamtbild die individuellen Einzelbilder enthält, wird durch Division der Bildhöhe durch die Anzahl der Ansichten und die Bildbreite durch die Anzahl der Einzelbilder ermittelt. Diese Daten werden in der `world.desktop`-Datei festgelegt.

Beispiel für ein Animationsbild: `cannon.png`

Für die Animation der Einheiten gibt es drei verschiedene Ansichten (von oben nach unten):

- nach rechts

- nach links

- zum Betrachter

Für die Flaggen gibt es nur eine Ansicht. Der Hintergrund für die Animationen muss transparent sein.

Beispiel für ein Animationsbild einer Flagge: `italy.png`

##### Die Elemente der Zusammenfassung

Name des Elements | Beispielbild | Bedeutung
map |  | Die Karte für das Design. Die Länder können beliebige Formen aufweisen, sollten aber durch den Standort oder die Farbe für das Auge erkennbare Kontinente ergeben.
italy |  | Die Flagge der italienischen Nation. Für jede Nation gibt es ein solches Bild.
infantry |  | Das Bild für eine Einheit.
cavalry |  | Das Bild für fünf Einheiten.
cannon |  | Das Bild für zehn Einheiten.
firing |  | Das Bild für kämpfende Einheiten.
exploding |  | Das Bild für verlorene Einheiten.
Alaska |  | Dies ist die Form von Alaska. Sie wird zum Hervorheben des Landes verwendet. Für jedes Land gibt es eine solche Form, bei der keine Farben verwendet werden (damit ist die Farbauswahl egal).
reddices |  | Der rote Würfel für die Anzeige des Würfelergebnisses.
bluedices |  | Der blaue Würfel für die Anzeige des Würfelergebnisses.
mark1 |  | Dieses Bild wird zur Anzeige der Anzahl der kämpfenden Einheiten verwendet (hier: 1). Es werden auch die Elemente „mark2“ und „mark3“ benötigt.

##### `map-mask.png`

Es handelt sich hierbei um eine `.png`-Datei, die ebenfalls die Karte des Designs darstellt. Jedoch wird hierbei die Identifizierung des einzelnen Landes mit festgelegten Farben ermöglicht. Die Länder müssen mindestens die Größe der selbigen in der Datei `map.png` vorweisen, damit die Auswahl des Landes durch einen Klick irgendwo innerhalb des Landes erfolgen kann. Um die Auswahl von kleineren Ländern zu vereinfachen, kann es größer sein als in der Datei `map.png` (z. B. Indonesien im standardmäßigen Design). Beispiel einer `map-mask.png`

Der Blauanteil (im RGB-Farbspektrum) gibt das jeweilige Land an (0x000000 = Land[0], 0x000001 = Land[1] &etc; in der Datei `world.desktop`). Mit Weiß (0xFFFFFF) werden die übrigen Flächen definiert.

##### Die Knopfbilder

Die Dateinamen sind fest im Quellkode verankert und sollten daher nicht verändert werden. Die folgende Tabelle zeigt alle verwendeten Knöpfe.

##### Die Knöpfe der &GUI;

Symbol | Dateiname | Bedeutung
| `newNetGame.png` | Teilnahme an einem Netzwerkspiel.
| `recycling.png` | Nachdem alle Spieler ihre Einheiten verteilt haben, kann die Verteilung nochmals verändert werden (Umverteilung). Dieser Knopf ist für die entsprechende Abfrage.
| `recyclingFinished.png` | Die Umverteilung wird nicht gewählt. Der Knopf muss von allen Spielern gedrückt worden sein, damit die Verteilung abgeschlossen ist.
| nextPlayer.png | Der Zug des aktuellen Spielers endet und der nächste Spieler ist am Zug oder die nächste Runde beginnt, wenn der aktuelle Spieler der letzte ist.
| `attackOne.png` | Das Land wird mit einer Einheit angegriffen.
| `attackTwo.png` | Das Land wird mit zwei Einheiten angegriffen.
| `attackThree.png` | Das Land wird mit drei Einheiten angegriffen.
| `defendOne.png` | Das angegriffene Land wird mit einer Einheit verteidigt.
| `defendTwo.png` | Das angegriffene Land wird mit zwei Einheiten verteidigt.
| `moveArmies.png` | Einheiten werden in ein benachbartes Land verlegt (letzte Aktion eines Spielzugs).

#### Sounds/

Dieser Ordner enthält drei Audio-Dateien:

- `roll.wav` wird bei Bewegung der Einheiten,

- `cannon.wav` wird beim Schusswechsel und

- `crash.wav` wird beim Schuss einer Kanone abgespielt

### KsirK-Design-Editor verwenden

Nachdem die Grafiken und die `.svg`-Datei im richtigen Ordner erstellt wurden, müssen die Länder, Spieler, usw. erstellt und mit dem richtigen Element in der `.svg`-Datei verknüpft werden. Dies kann mit KsirK-Design-Editor geschehen. Zu Beachten ist, dass alle Teile dieses Programms durch Kurzinfos und Kontexthilfe automatisch beschrieben werden (Tastenkürzel: Strg + F1).

Bildschirmfoto von KsirK-Design-Editor Bildschirmfoto

## Befehle

### Der Hauptbildschirm von KsirK-Design-Editor

#### Die Knöpfe

Laden Laden

- Das Programm lädt ein bestehendes Design.

Speichern Speichern

- Speichert das in Bearbeitung befindliche Design.

## Entwicklerhandbuch zu KsirK-Design-Editor

Die Dokumentation für die API (Programmierschnittstelle) ist auf http://api.kde.org/ verfügbar.

## Fragen und Antworten

&updating.documentation;

## Danksagungen und Lizenz

KsirK-Design-Editor

Programm © 2009 Gael de Chalendar kleag@free.fr

Dokumentation © 2009 Gael de Chalendar kleag@free.fr

Übersetzung: Johannes Obermayr johannesobermayr@gmx.de

&underFDL; &underGPL;
&documentation.index;