Kapitel 2. 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]

Tabelle 2.1. Aufbau von [onu]

EintragBedeutung
widthDie Breite der Karte (in px).
heightDie Höhe der Karte (in px).
skinpathDer Pfad zum Design - relativ zum Programm - (z. B. skins/default).
nb-countriesDie Anzahl der Länder (42 im standardmäßigen Design). Es müssen alle Länder definiert werden.
nb-nationalitiesDie Anzahl der Nationen (6 im standardmäßigen Design). Es müssen alle Nationen definiert werden.
nb-continentsDie Anzahl der Kontinente (6 im standardmäßigen Design). Es müssen gleich viele continent-Gruppen erstellt werden.
poolDer Pfad und Name der zusammengefassten Datei - relativ zum Design (z. B. Images/pool.svg).
map-maskDer Pfad und Name der Datei map-mask - relativ zum Design (z B. Images/map-mask.png).
format-versionDie Version der Design-Datei (2.0)
nameDer angezeigte Name für das Design.
descDie ausführliche Beschreibung des Designs.
fighters-flag-y-diffDer Höhenunterschied zwischen den Animationen der Flaggen und Kanonen.
width-between-flag-and-fighterDie 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“.

Tabelle 2.2. Aufbau der Animationsbeschreibungen

EintragBedeutung
widthDie Bezugsbreite für die Bilder der Flaggenanimation.
heightDie Bezugshöhe der Bilder für die Flaggenanimation.
framesDie Anzahl der Bilder für die Animation.
versionsDie 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.

Tabelle 2.3. Definition der Länder

EintragBedeutung
idDie einzigartige Identifikationsnummer (Ganzzahl) für das Land (beginnend mit 0)
nameDer angezeigte Ländername.
<sprite>-pointJede Animation (Flagge, Infanterist, usw.) wird an einer bestimmten Stelle des Landes angezeigt. Diese wird durch zwei Ganzzahlen definiert (getrennt durch Komma).
neighboursDie 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.

Tabelle 2.4. Definition der Nationen

EintragBedeutung
nameDer Name der Nation (z. B. Japan)
leaderDer voreingestellte Name des Staatschefs.
flagDer 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.

Tabelle 2.5. Definition der Kontinente

EintragBedeutung
nameDer Name des Kontinents (z. B. Afrika)
idDie einzigartige Identifikationsnummer (Ganzzahl) für den Kontinent (beginnend mit 1)
bonusDie Anzahl der Zusatzeinheiten am Rundenende für das Eigentum an allen Ländern des Kontinents.
continents-countriesDie 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.

Tabelle 2.6. Definition der Spielziele

EintragBedeutung
typeDie Art des Spielziels. Es kann sich hierbei um Kontinente, Länder oder Spieler handeln (continents, countries oder player).
nbArmiesByCountryDie minimale Anzahl an Einheiten, die sich auf jedem Land befinden muss.
nbCountriesDie Anzahl der Länder, die erobert werden müssen.
nbCountriesFallbackFür Spieler-Ziele: Sollte der genannte Spieler von einem anderen vernichtet werden, muss der Spieler mit diesem Spielziel stattdessen so viele Länder erobern.
descDie Beschreibung des Spielziels mit Platzhaltern in einem ganzen Satz (weitere Ausführungen folgen).
continentsFü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

Tabelle 2.7. Die Elemente der Zusammenfassung

Name des ElementsBeispielbildBedeutung
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] usw. 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.

Tabelle 2.8. Die Knöpfe der GUI

SymbolDateinameBedeutung
newNetGame.pngTeilnahme an einem Netzwerkspiel.
recycling.pngNachdem alle Spieler ihre Einheiten verteilt haben, kann die Verteilung nochmals verändert werden (Umverteilung). Dieser Knopf ist für die entsprechende Abfrage.
recyclingFinished.pngDie Umverteilung wird nicht gewählt. Der Knopf muss von allen Spielern gedrückt worden sein, damit die Verteilung abgeschlossen ist.
nextPlayer.pngDer 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.pngDas Land wird mit einer Einheit angegriffen.
attackTwo.pngDas Land wird mit zwei Einheiten angegriffen.
attackThree.pngDas Land wird mit drei Einheiten angegriffen.
defendOne.pngDas angegriffene Land wird mit einer Einheit verteidigt.
defendTwo.pngDas angegriffene Land wird mit zwei Einheiten verteidigt.
moveArmies.pngEinheiten 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