# Manuale di &kappname;

Gaël Kleag de Chalendar

    Kleag@free.fr

Federico Zenith

    federico.zenith@member.fsf.org

Traduzione in italiano
2009 Gaël de Chalendar
&FDLNotice;
22/05/2009
4.3

&ksirk; è la versione per computer di un gioco di strategia molto noto. I suoi temi sono completamente configurabili. Questo manuale spiega come creare nuovi temi partendo da zero, usando un browser di file, un editor per immagini SVG, e &kappname;.

KDE kdegames gioco strategia Risiko libero GPL tema editor

## Introduzione

&ksirk; è la versione per computer di un gioco di strategia molto noto. I suoi temi sono completamente configurabili. Questo manuale spiega come creare nuovi temi partendo da zero, usando un browser di file, un editor per immagini SVG, e &kappname;.

Ecco una schermata di &kappname;

Schermata

Per creare un nuovo tema ci sono tre passi principali: creare la gerarchia delle cartelle; creare la grafica, raccolta in un singolo file SVG; e infine inserire gli sprite e assegnare i nomi usando &kappname;.

## Creare un tema di &ksirk;

&ksirk; è completamente configurabile. Per chi ha capacità grafica, creare un nuovo tema è facile come copiarne uno esistente, modificarne la grafica e aggiornarne i dati in un file di configurazione .desktop, il che si fa con &kappname;. L'ultimo passo è modificare il file che descrive cosa installare.

Tutti gli esempi (testo e immagini) sono presi dal tema predefinito di &ksirk;.

### Struttura delle cartelle e dei file

- `Data/`: dati usati dal programma per gestire le immagini del tema.

  - `CMakeLists.txt`: descrive cosa installare.

  - `onu.desktop`: file principale della descrizione del tema. Vedi sotto la sua descrizione.

- `Images/`: le immagini del tema (mappa, sprite, ecc.)

  - `CMakeLists.txt`: descrive cosa installare.

  - `pool.svg`: la mappa e tutti gli sprite usati in questo tema.

  - `map-mask.png`: l'immagine che permette al programma di sapere su quale stato si trova il mouse durante il gioco (vedi sotto).

  - `*.png`: le rimanenti sono immagini dei pulsanti.

- `CMakeLists.txt/`: descrive cosa installare.

- `Sounds/`: file sonori del tema.

#### La cartella `Data`

Questa cartella contiene un solo file, `world.desktop`. Questo file è una descrizione del contenuto del tema. Viene usato per descrivere l'organizzazione del mondo e come visualizzarlo. Non devi scriverlo a mano perché verrà gestito da &kappname;. Per completezza, però, ne descriveremo la struttura.

Un gruppo onu contiene un certo numero di voci di stato, di nazionalità e di continenti. Altri gruppi contengono le descrizioni dei vari sprite, stati, continenti, nazionalità e obiettivi.

Le sezioni seguenti descrivono il contenuto di ogni gruppo.

##### Il gruppo onu

Le voci del gruppo onu

Nome della voce | Significato
--- | ---
width | La larghezza della mappa del tema.
height | L'altezza della mappa del tema.
skinpath | Il percorso del tema relativo al percorso dei dati dell'applicazione, per esempio `skins/default`.
nb-countries | Il numero di stati (42 nel tema predefinito). Ci dovrebbe essere lo stesso numero di gruppi di stati sotto.
nb-nationalities | Il numero di nazionalità (6 nel tema predefinito). Ci dovrebbe essere lo stesso numero di gruppi di nazionalità sotto.
nb-continents | Il numero di continenti (6 nel tema predefinito). Ci dovrebbe essere lo stesso numero di gruppi di continenti sotto.
pool | Il percorso e il nome del file magazzino relativamente al percorso del tema, per esempio `Images/pool.svg`.
map-mask | Il percorso e il nome del file di maschera della mappa relativamente al percorso del tema, per esempio `Images/map-mask.png`.
format-version | La versione del formato di file del tema (2.0).
name | Il nome del tema da visualizzare.
desc | Una descrizione lunga del tema.
fighters-flag-y-diff | La differenza d'altezza tra sprite di bandiere e cannoni.
width-between-flag-and-fighter | Il numero di pixel tra il pixel all'estrema sinistra della bandiera e il pixel all'estrema destra del cannone semplice (mentre non fa fuoco né esplode).

##### I gruppi delle descrizioni degli sprite

Ogni tipo di sprite (bandiera, fanteria, cavalleria, cannone, cannone che fa fuoco e cannone che esplode) è definito da un gruppo. Solo alcuni sprite hanno una voce per la larghezza. Questa voce viene usata per il posizionamento relativo durante le animazioni: i cannoni, che facciano fuoco o che esplodano, non dovrebbero spostarsi attorno alla bandiera dello stato durante il combattimento.

Voci dei gruppi delle descrizioni degli sprite

Voce | Significato
--- | ---
width | La larghezza di riferimento dei fotogrammi dello sprite della bandiera.
height | L'altezza di riferimento dei fotogrammi dello sprite della bandiera.
frames | Il numero di fotogrammi dello sprite.
versions | Il numero di versioni degli sprite della bandiera

##### I gruppi di descrizione degli stati

Ogni stato elencato nel gruppo onu alla nella voce countries ha il suo gruppo, la cui etichetta è il nome dello stato. La tabella sotto elenca le voci di questi gruppi.

Voci degli stati

Nome della voce | Significato
--- | ---
id | Il numero identificativo, intero ed univoco, dello stato; parte da zero.
name | Il nome dello stato da visualizzare.
<sprite>-point | Ogni tipo di sprite (bandiera, fanteria, ecc.) nello stato viene visualizzato in una certa posizione definita da questa voce, che è costituita da due numeri interi separati da una virgola.
neighbours | L'elenco degli identificativi dei vicini dello stato attuale.

##### I gruppi delle descrizioni delle nazionalità

Ogni nazionalità elencata nel gruppo onu alla nella voce nationalities ha il suo gruppo, la cui etichetta è il nome della nazionalità. La tabella sotto elenca le voci di questi gruppi.

Voci delle nazionalità

Nome della voce | Significato
--- | ---
name | Il nome della nazionalità (per esempio, Giappone).
leader | Il nome che verrà proposto al giocatore che sceglie questa nazionalità.
flag | Il nome dell'elemento dello sprite della bandiera dello stato nel file SVG onu.

##### I gruppi delle descrizioni dei continenti

Ogni continente elencato nel gruppo onu alla nella voce continents ha il suo gruppo, la cui etichetta è il nome del continente. La tabella sotto elenca le voci di questi gruppi.

Voci dei continenti

Nome della voce | Significato
--- | ---
name | Il nome del continente (per esempio, Africa)
id | Il numero identificativo, intero ed univoco, del continente.
bonus | Il numero di armate ottenute alla fine del turno dal giocatore che domina tutti gli stati del continente.
continent-countries | L'elenco degli identificativi degli stati contenuti nel continente attuale.

##### I gruppi delle descrizioni degli obiettivi

Ogni obiettivo elencato nel gruppo onu alla nella voce goals ha il suo gruppo, la cui etichetta è il nome dell'obiettivo. La tabella sotto elenca le voci di questi gruppi.

Voci degli obiettivi

Nome della voce | Significato
--- | ---
type | Il tipo di obiettivo. Può essere continents, countries o player
nbArmiesByCountry | Imposta il numero minimo di armate che il giocatore deve mettere su ogni stato.
nbCountries | Imposta il numero di stati che il giocatore deve possedere.
nbCountriesFallback | Per un tipo di obiettivo player, se il giocatore preso di mira viene ucciso da un altro, questo imposta il numero di stati che il giocatore deve conquistare come obiettivo alternativo.
desc | Una descrizione testuale completa dell'obiettivo con segnaposti appropriati (qui serve maggiore documentazione).
continents | L'elenco degli identificativi dei continenti che il giocatore dovrà conquistare.

#### La cartella `Images`

Questa cartella contiene i pulsanti specifici di &ksirk; e il file magazzino SVG contenente la mappa e tutti gli sprite.

##### Il file `pool.svg`

Questo file SVG contiene la mappa e tutti gli sprite del gioco. Ogni elemento ha un nome, in modo che il programma possa selezionare e rendere separatamente ciascuno di essi.

Nel tema predefinito, gli sprite sono bandiere, fanteria, cavalleria e cannone. La fanteria rappresenta un'armata, la cavalleria cinque e il cannone dieci. I cannoni sono usati anche per visualizzare le armate in combattimento: è per questo che ci sono tre tipi di sprite per i cannoni: cannone normale fermo o in movimento, cannone che fa fuoco e cannone che esplode.

Ogni immagine degli sprite è la concatenazione di varie viste dell'oggetto, e per ogni vista i suoi fotogrammi. Le viste sono organizzate verticalmente e i fotogrammi orizzontalmente. Dividendo l'altezza dell'immagine per il numero di viste e la larghezza per il numero di fotogrammi si calcola dove tagliare l'immagine in fotogrammi individuali. Questi dati si trovano nel file `onu.desktop`.

Un esempio di immagine sprite: `cannon.png`.

Per gli sprite delle armate, ci sono tre viste diverse, dall'alto in basso:

- verso destra,

- verso sinistra, e

- di fronte.

Per le bandiere, c'è solo una vista. Tutti gli sfondi degli sprite dovrebbero essere trasparenti.

Un esempio di un'immagine sprite di una bandiera: `italy.png`.

Gli elementi del magazzino

Nome dell'elemento | Immagine campione | Significato
--- | --- | ---
map |  | Mappa del mondo del tema. Gli stati possono avere forme arbitrarie, ma dovrebbero essere raggruppati in continenti riconoscibili a occhio, per luogo o per colore.
italy |  | La bandiera della nazione italiana. C'è una voce simile per ogni nazione.
infantry |  | Icona che rappresenta un'armata.
cavalry |  | Icona che rappresenta cinque armate.
cannon |  | Icona che rappresenta dieci armate.
firing |  | Icona che rappresenta dieci armate durante il combattimento.
exploding |  | Icona che rappresenta dieci armate sconfitte.
Alaska |  | La forma dello stato dell'Alaska; si usa per evidenziarlo. C'è una forma simile per ogni stato. Il suo colore non viene usato, quindi, si è liberi di sceglierne uno qualsiasi.
reddices |  | I dadi rossi usati per mostrare i risultati delle battaglie.
bluedices |  | I dadi blu usati per mostrare i risultati delle battaglie.
mark1 |  | Questo segno viene aggiunto agli sprite in combattimento per indicare il numero di armate che rappresentano, in questo caso 1. Ci sono anche degli elementi mark2 e mark3.

##### Il file `map-mask.png`

Anche questo è un file `png` che rappresenta il mondo del tema, ma con colori in codice che permettono di identificare ogni stato. Gli stati devono avere almeno le stesse forme degli stati corrispondenti in `map.png`, in modo che gli utenti possano fare clic ovunque in uno stato visibile e selezionare quello giusto. Stati come le isolette dell'Indonesia nella mappa predefinita possono essere più grandi dell'equivalente nel file `map.png` per facilitarne la selezione.

Un file `map-mask.png` campione

Il componente blu (nel modello RGB) di uno stato lo identifica: l'indice 0 è lo stato 0 nel file `onu.xml`, l'indice 1 è lo stato 1, e così via. Il bianco (`0xFFFFFF` in RGB) indica l'assenza di uno stato, come per i mari o le terre di nessuno.

##### Le immagini dei pulsanti

I nomi dei file sono fissati nel codice, quindi non vanno modificati. La tabella sotto indica tutti i pulsanti che si dovrebbero fornire.

I pulsanti dell'interfaccia

Immagine | Nome del file | Significato
--- | --- | ---
| newNetGame.png | Cerca di entrare in una partita in rete
| recycling.png | Dopo che tutti i giocatori hanno disposto le loro armate, è possibile modificarne la distribuzione (cosiddetto riciclo). Questo pulsante chiede di fare una tale redistribuzione.
| recyclingFinished.png | Sceglie di non ridistribuire. Tutte i client devono aver premuto questo pulsante per concludere la redistribuzione.
| nextPlayer.png | Conclude il turno del giocatore attuale e passa al prossimo giocatore, o al prossimo turno se il giocatore attuale era l'ultimo.
| attackOne.png | Sceglie di cominciare un attacco con un'armata.
| attackTwo.png | Sceglie di cominciare un attacco con due armate.
| attackThree.png | Sceglie di cominciare un attacco con tre armate.
| defendOne.png | Sceglie di difendere uno stato attaccato con un'armata.
| defendTwo.png | Sceglie di difendere uno stato attaccato con due armate.
| moveArmies.png | Sceglie di cominciare lo spostamento di armate tra stati (ultima azione del turno).

#### La cartella `Sounds`

Questa cartella contiene tre file sonori:

- `roll.wav`, riprodotto quando le armate sono in movimento;

- `cannon.wav`, riprodotto quando si fa fuoco; e

- `crash.wav`, riprodotto quando un cannone esplode.

### Usare &kappname;

Dopo aver messo la grafica nella cartella e nel file SVG giusti, devi creare gli stati, i giocatori, eccetera, e associarli con l'elemento SVG giusto nel magazzino. Ciò può essere fatto con &kappname;. Nota che ogni parte di questa applicazione è autodescritta da suggerimenti e aiuti contestuali, normalmente disponibili con la scorciatoia &Ctrl;F1.

Ecco una schermata di &kappname;

Schermata

## Guida ai comandi

### La finestra principale di &kappname;

#### I pulsanti

Carica
Carica

  Fa caricare al programma un tema esistente.

Salva
Salva

  Salva il tema attualmente modificato.

## Guida dello sviluppatore a &kappname;

Riferisciti all'indice di riferimento delle API di &kde; per la documentazione dell'API.

## Domande e risposte

&updating.documentation;

## Riconoscimenti e licenza

&kappname;

Copyright del programma 2009 di Gaël de Chalendar kleag@free.fr

Copyright della documentazione 2009 di Gaël de Chalendar kleag@free.fr

Traduzione di Federico Zenithfederico.zenith@member.fsf.org

&underFDL; &underGPL;

## Installazione

### Come procurarsi &kappname;

&install.intro.documentation;

### Compilazione e installazione

&install.compile.documentation;
&documentation.index;