Éric
Bischoff
Johannes
Obermayr

    johannesobermayr@gmx.de

Übersetzung
15.12.2009
0.6.0
KDE
KTuberling
Technische Referenz

# Technische Referenz

&ktuberling; bietet eine sanfte und lohnende Einführung in die Anpassung und Programmierung von &kde;. &ktuberling; kann beliebig erweitert werden. So können beispielsweise neue Spielfelder ohne Programmieren durch Ändern der Grafikdateien hinzugefügt werden. Durch Hinzufügen geeigneter Audiodateien können Übersetzer die Klänge in ihre Muttersprache ändern.

Sollten Erweiterungen oder Ergänzungen zum Spiel vorgenommen werden, wird um deren Übersendung an den derzeitigen Betreuer Alex Fiestas zur Berücksichtung in künftigen Versionen gebeten.

## Grafiker

Zum Erstellen eines neuen Spielfeldes für &ktuberling; sind folgende Maßnahmen notwendig:

- Zeichnen eines Spielfeldes in einer `*.svg`-Datei unter Beachtung, dass

  - der Ort, an den die Objekte gezogen werden, den Namen „background“ erhält.

  - jedes ziehbare Objekt einen einzigartigen Namen erhält.

- Erstellen einer `*.theme`-Datei mit folgendem Schema:

      <playground gameboard="svg-Datei" name="desktop-Datei">
          <object name="Objektname" sound="Klangname"scale="beliebigerWert" />
          ...
          ...
          ...
          </playground>

  - svg-Datei ist der Name für die `svg`-Datei mit den Objekten.

  - desktop-Datei ist der Name der `desktop`-Datei, die den Namen des Designs beinhaltet.

  - Für jedes Objekt ist ein <object>-Eintrag erforderlich. Objektname ist der einzigartige Name innerhalb der `svg`-Datei und Klangname ist der Name des beim Ziehen des Objektes wiedergegebenen Klanges.

  - scale ist ein zusätzlicher Wert. beliebigerWert wird dabei als Wert für die Vergrößerung des Objektes verwendet, sobald es aus dem Depot „geholt“ wird. Bei unterbliebener Festlegung wird als Wert 1 verwendet.

- Erstellen einer `*.desktop`-Datei nach folgendem Schema:

      [KTuberlingTheme]
          Name=Designname

  - Designname ist der identifizierende Name des Designs und wird im Menü Spielfeld angezeigt.

- Beim Hochladen des Designs zum SVN-Depot von &kde; müssen die `*.svg`-, `*.theme`- und `*.desktop`-Datei im Abschnitt FILES der Datei `CMakeLists.txt` des Ordners `pics/` eingetragen werden.

- Zur Verwendung auf dem lokalen System müssen die `*.svg`-, `*.theme`- und `*.desktop`-Datei im Ordner ``kde4-config --prefix`/share/apps/ktuberling/pics` vorhanden sein.

## Übersetzer

Neben dem üblichen Übersetzen der `.po`-Dateien für die grafische Oberfläche können für &ktuberling; auch die Klänge lokalisiert werden.

Zum Erstellen eines neuen Klangdesigns für &ktuberling; sind folgende Maßnahmen notwendig:

- Die Klänge im Format OGG Vorbis rc3 speichern.

- Erstellen einer `de.soundtheme`-Datei mit folgendem Schema:

      <language code="de">
      <sound name="Klangname" file="relativerPfad" />
      ...
      ...
      ...
      </language>

  - de wird hier und im Folgenden nur beispielhaft für Deutsch verwendet. Für andere Sprachen muss stattdessen das jeweilige Sprachenkürzel eingesetzt werden.

  - Für jeden Klang ist ein <sound>-Eintrag erforderlich. Klangname sollte mit dem Klangnamen im Spielfeld-Design übereinstimmen. relativerPfad ist der relative Pfad zur Klangdatei und typischerweise `einzigartigerPfad/Klangname.format` wobei einzgartigerPfad beispielsweise de sein kann.

- Beim Hochladen des lokalisierten Klangdesigns zum SVN-Depot von &kde; müssen

  - die Klang- und `*.soundtheme`-Dateien im Ordner `l10n-kde4/de/data/kdegames/ktuberling` vorliegen.

  - im selben Ordner die Datei `CMakeLists.txt` mit der Beschreibung für die Installation nach folgendem Muster vorliegen:

        FILE(GLOB datafiles *.ogg)
        install( FILES ${datafiles} DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/de )
        install( FILES de.soundtheme DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/ )

- Zur Verwendung auf dem lokalen System müssen

  - die `de.soundtheme`-Datei im Ordner ``kde4-config --prefix`/share/apps/ktuberling/sounds` vorhanden sein

  - die lokalisierten Klangdateien im Ordner ``kde4-config --prefix`/share/apps/ktuberling/sounds/einzigartigerOrdner` vorhanden sein.

Informationen zur Arbeit mit dem Übersetzungssystem von &kde; sind in der &kde;-Übersetzungsanleitung verfügbar.

## Entwickler

Die Erweiterung von &ktuberling; durch Entwickler ist nicht wirklich schwierig.

### C++-Klassen

`TopLevel`

  Sichtbares Fenster und grundlegende Programmverwaltung

`PlayGround`

  Beschreibung einer Spielfeldebene

`ToDraw`

  Beschreibung eines darzustellenden grafischen Objekts

`SoundFactory`

  Beschreibung einer Sprache und deren Klänge

`Action`

  Eine der Veränderungen des Benutzers im „Rückgängig/Wiederherstellen“-Stapel