Éric
Bischoff
Stefan
Asserhäll

    stefan.asserhall@comhem.se

Översättare
2009-12-15
0.6.0
KDE
Potatismannen
teknisk referens

# Teknisk referens

Potatismannen erbjuder en mjuk och lönande inledning till anpassning och programmering av &kde;. Programmet kan utökas. Utan att koda kan till exempel nya lekplatser läggas till genom att ändra grafikfiler. Genom att lägga till lämpliga ljudfiler, kan översättare ändra ljuden till sitt modersmål!

Om du utökar eller lägger till något i spelet, skicka gärna dina tillägg till utvecklaren Alex Fiestas så att de kan läggas till i framtida utgåvor.

## För grafiker

För att skapa en ny lekplats i Potatismannen måste du:

- Rita lekplatsen i en SVG-fil, är du måste:

  - Namnge platsen där objekt kan dras "bakgrunden".

  - Namnge vart och ett av objekten som kan dras med ett unikt namn.

- Skapa en .theme-fil, som måste ha följande utseende:

      <playground gameboard="din_SVG-fil" name="skrivbordsfilen">
          <object name="objektnamn" sound="ljudnamn" scale="något_värde" />
          ...
          ...
          ...
          </playground>

  - din_SVG-fil är namnet på SVG-filen som innehåller grafiken.

  - skrivbordsfilen är namnet på skrivbordsfilen som har samma namn som temat.

  - För varje objekt behövs posten <object>. Objektnamn är det unika namn som användes i SVG-filen. Ljudnamn är ljudnamnet som spelas när det dras, se beskrivningen av ljudteman för mer information.

  - Skalan är valfri och något_värde är skalfaktorn som används när objektet ritas utanför lagret. Om den inte anges är den 1.

- Skapa en .desktop-fil, som måste ha följande utseende:

      [KTuberlingTheme]
          Name=temanamn

  - temanamn är namnet som identifierar temat, och som visas i menyn Lekplats.

- Om du lägger till temat i Potatismannens SVN-arkiv, lägg till .svg-, .theme- och .desktop-filer i avdelningen FILES av CMakeLists.txt i katalogen pics/.

- Om du vill installera det själv, placera .svg-, .theme- och .desktop-filer i `kde4-config --prefix`/share/apps/ktuberling/pics

## För översättare

Förutom den vanliga `.po`-fil mekanismen för att översätta programrubriker och promptrar, kan ljuden också anpassas.

För att skapa ett nytt ljudtema för Potatismannen måste du:

- Spela in ljuden med OGG Vorbis rc3 filformat.

- Skapa filen ditt_språks_tvåbokstavskod.soundtheme, som måste ha följande utseende:

      <language code="ditt_språks_tvåbokstavskod">
      <sound name="ljudnamn" file="relativ_sökväg" />
      ...
      ...
      ...
      </language>

  - ditt_språks_tvåbokstavskod är koden med två bokstäver för ditt språk, till exempel sv för svenska.

  - För varje ljud behövs posten <sound>. ljudnamn som ska passa ihop med ljudnamn som anges för lekplatsen (se beskrivningen av teman). relativ_sökväg är platsen där filen med ljudet ska installeras. Oftast är det någon_unik_sökväg/ljudnamn.format (någon_unik_sökväg kan till exempel vara språkets tvåbokstavskod).

- Om du lägger till ljudtemat i Potatismannens SVN-arkiv:

  - Lägg till ljudfilerna och .soundtheme-filerna i katalogen data/kdegames/ktuberling under översättningen av ditt språk.

  - I samma katalog behövs en CMakeLists.txt som beskriver hur filerna ska installeras. Typiskt innehåller den:

        FILE(GLOB datafiles *.ogg)
        install( FILES ${datafiles} DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/ditt_språks_tvåbokstavskod )
        install( FILES ditt_språks_tvåbokstavskod.soundtheme DESTINATION ${DATA_INSTALL_DIR}/ktuberling/sounds/ )

- Om du vill installera den själv:

  - Placera filen ditt_språks_tvåbokstavskod.soundtheme i `kde4-config --prefix`/share/apps/ktuberling/sounds

  - Placera din_ljudtemafil i `kde4-config --prefix`/share/apps/ktuberling/sounds/någon_unik_sökväg

Information om hur man arbetar med översättningsmekanismen i &kde; finns tillgänglig på &kde; Translation HOWTO.

## För programmerare

Potatismannen är inte särskilt svår att utöka för programmerare.

### C++ klasser

`TopLevel`

  Toppnivåfönster och grundläggande programhantering

`PlayGround`

  Beskrivning av en av spelets nivåer

`ToDraw`

  Beskrivning av ett av de grafiska objekten som ska ritas

`SoundFactory`

  Beskrivning av ett av språken och dess ljud

`Action`

  En av användarens åtgärder i stacken med ångra och gör om.