Manuale di Editor dei temi di KsirK

# Manuale di Editor dei temi di KsirK

Gaël Kleag de Chalendar `<Kleag@free.fr>`

Traduzione in italiano: Federico Zenith
Revisione KDE Gear 21.08 (14/10/2021)

Diritto d'autore © 2009 Gaël de Chalendar

Nota Legale

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 Editor dei temi di KsirK.

Lista delle tabelle

2.1. Le voci del gruppo `onu`
2.2. Voci dei gruppi delle descrizioni degli sprite
2.3. Voci degli stati
2.4. Voci delle nazionalità
2.5. Voci dei continenti
2.6. Voci degli obiettivi
2.7. Gli elementi del magazzino
2.8. I pulsanti dell'interfaccia

Capitolo 1. Introduzione
Introduzione

# Capitolo 1. 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 Editor dei temi di KsirK.

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 Editor dei temi di KsirK.

Capitolo 2. Creare un tema di KsirK
Creare un tema di KsirK

# Capitolo 2. Creare un tema di KsirK

KsirK è completamente configurabile. Per chi ha capacità grafiche, creare un nuovo tema è facile come copiarne uno esistente, modificarne la grafica e aggiornarne i dati in un file di configurazione `.desktop`, generato con Editor dei temi di KsirK. 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 utilizzato per descrivere l'organizzazione del mondo e come visualizzarlo. Non devi scriverlo a mano perché sarà gestito da Editor dei temi di KsirK. Per completezza, però, ne descriveremo la struttura.

Un gruppo `onu` contiene un certo numero di voci di stati, 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`

Tabella 2.1. 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 (ad es. `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 (ad es. `Images/pool.svg`).
`map-mask` | Il percorso e il nome del file di maschera della mappa relativamente al percorso del tema (ad es. `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.

Tabella 2.2. Voci dei gruppi delle descrizioni degli sprite

Nome della 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 delle bandiere.

#### I gruppi di descrizione degli stati

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

Tabella 2.3. Voci degli stati

Nome della voce | Significato
--- | ---
`id` | Il numero identificativo, intero ed univoco, dello stato; parte da zero (0).
`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à

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

Tabella 2.4. Voci delle nazionalità

Nome della voce | Significato
--- | ---
`name` | Il nome della nazionalità (ad es. `Giappone`).
`leader` | Il nome che sarà 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

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

Tabella 2.5. Voci dei continenti

Nome della voce | Significato
--- | ---
`name` | Il nome del continente (ad es. `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 all'interno nel continente attuale.

#### I gruppi delle descrizioni degli obiettivi

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

Tabella 2.6. Voci degli obiettivi

Nome della voce | Significato
--- | ---
`type` | Il tipo di obiettivo. Può essere continents (continenti), countries (stati) o player (giocatore).
`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`.

Tabella 2.7. 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 posizione 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 un combattimento.
`exploding` |  | Icona che rappresenta le 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 marcatore 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.

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, ecc.. 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.

Tabella 2.8. 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 eseguire questa redistribuzione.
| `recyclingFinished.png` | Sceglie di non ridistribuire. Tutte le finestre dei client devono avere questo pulsante premuto 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

Utilizzare l'Editor dei temi di KsirK
Utilizzare l'Editor dei temi di KsirK

## Utilizzare l'Editor dei temi di KsirK

Dopo aver messo la grafica nella cartella e nel file SVG giusti, devi creare gli stati, i giocatori, ecc., e associarli con l'elemento SVG giusto nel magazzino. Ciò può essere fatto con Editor dei temi di KsirK. Nota che ogni parte di questa applicazione è auto-descritta da suggerimenti e aiuti contestuali, normalmente disponibili con la scorciatoia Ctrl+F1.

Capitolo 3. Guida ai comandi
Guida ai comandi

# Capitolo 3. Guida ai comandi

## La finestra principale di Editor dei temi di KsirK

### I pulsanti

Carica…

  Fa caricare al programma un tema esistente.

Salva

  Salva il tema attualmente modificato.

Capitolo 4. Guida dello sviluppatore a Editor dei temi di KsirK
Guida dello sviluppatore a Editor dei temi di KsirK

# Capitolo 4. Guida dello sviluppatore a Editor dei temi di KsirK

Fai riferimento a ihttps://api.kde.org/ per la documentazione dell'API.

Capitolo 5. Domande e risposte
Domande e risposte

# Capitolo 5. Domande e risposte

Questo documento potrebbe essere stato aggiornato dal momento dell'installazione. Puoi trovarne l'ultima versione su https://docs.kde.org/.

Capitolo 6. Riconoscimenti e licenza
Riconoscimenti e licenza

# Capitolo 6. Riconoscimenti e licenza

KsirK Skin Editor

Copyright del programma 2009 di Gaël de Chalendar `(kleag AT free.fr)`

Copyright della documentazione 2009 di Gaël de Chalendar `(kleag AT free.fr)`

Traduzione di Federico Zenith`(federico.zenith AT member.fsf.org)`

Questa documentazione è concessa in licenza sotto i termini della GNU Free Documentation License.

Questo programma è concesso in licenza sotto i termini della GNU General Public License.