Manual de Editor de temas de KsirK

# Manual de Editor de temas de KsirK

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

Traducción: Rocío Gallego
Traductora: Kira J. Fernández
Corrección de la traducción: Eloy Cuadra
revisión KDE Gear 21.08 (2021-10-14)

Copyright © 2009 Gaël de Chalendar

Aviso Legal

KsirK es una versión digital de un conocido juego de estrategia. Es completamente personalizable. Este manual explica cómo crear nuevos temas desde el principio usando un navegador de archivos, un editor de imágenes SVG y Editor de temas de KsirK.

Lista de tablas

2.1. Las entradas del grupo `onu`
2.2. Entradas del grupo de descripción de imágenes
2.3. Entradas de países
2.4. Entradas de nacionalidades
2.5. Entradas de continentes
2.6. Entradas de objetivos
2.7. Elementos del almacén
2.8. Botones de la interfaz gráfica

Capítulo 1. Introducción
Introducción

# Capítulo 1. Introducción

KsirK es una versión digital de un conocido juego de estrategia. Es completamente personalizable. Este manual explica cómo crear nuevos temas desde el principio usando un navegador de archivos, un editor de imágenes SVG y Editor de temas de KsirK.

Hay tres pasos principales para crear un tema nuevo: crear la jerarquía de directorios, crear los gráficos, todos almacenados en un archivo SVG, y colocar las imágenes y dar nombre a las cosas usando Editor de temas de KsirK.

Capítulo 2. Creación de un tema para KsirK
Creación de un tema para KsirK

# Capítulo 2. Creación de un tema para KsirK

KsirK es totalmente personalizable. Para los que tengan habilidad con los gráficos, crear un nuevo tema es tan fácil como copiar uno ya existente, editar o cambiar los gráficos y actualizar los datos en un archivo de configuración `.desktop`, lo que se hace usando Editor de temas de KsirK. El último paso es editar el archivo que describe lo que se debe instalar.

Todos los ejemplos (texto e imágenes) están tomados del tema predeterminado de KsirK.

## Estructura de directorios y archivos

- `Data/`: Datos usados por el programa para manejar las imágenes del tema.

  - `CMakeLists.txt/`: Describe lo que se debe instalar.

  - `onu.desktop`: Archivo principal para la descripción del tema. Consulta su descripción más adelante.

- `Images/`: Imágenes del tema (mapas, iconos, etc.).

  - `CMakeLists.txt/`: Describe lo que se debe instalar.

  - `pool.svg`: El mapa y todas las imágenes que usa el tema.

  - `map-mask.png`: La imagen que permite al programa encontrar sobre qué país está el ratón durante el juego (consulta más abajo).

  - `*.png`: Las demás imágenes de aquí son de botones.

- `CMakeLists.txt/`: Describe lo que se debe instalar.

- `Sounds/`: Archivos de sonido para el tema.

### La carpeta «Data»

Esta carpeta contiene solo un archivo, `world.desktop`. Este archivo es una descripción del contenido del tema. Se usa para describir la organización del mundo y cómo representarla. No tienes que rellenarlo manualmente, ya que de eso se encarga Editor de temas de KsirK. Pero, por dar una información completa, describiremos su estructura.

Un grupo `onu` contiene un número de entradas de países, un número de entradas de nacionalidades y un número de entradas de continentes. Entonces varios grupos contienen la descripción de las diferentes imágenes, la descripción de los diferentes países, continentes, nacionalidades y objetivos.

Las siguientes secciones describen el contenido de cada grupo.

#### El grupo `onu`

Tabla 2.1. Las entradas del grupo `onu`

Nombre de la entrada | Significado
--- | ---
`width` | Anchura del mapa del tema.
`height` | Altura del mapa del tema.
`skinpath` | Ruta del tema relativa a la ruta de los datos de la aplicación (por ejemplo, `skins/default`).
`nb-countries` | Número de países (42 en el tema predeterminado). Debería haber el mismo número de grupos de países abajo.
`nb-nationalities` | Número de nacionalidades (6 en el tema predeterminado). Debería ser el mismo número de grupos de nacionalidad de abajo.
`nb-continents` | Número de continentes (6 en el tema predeterminado). Debería haber el mismo número de grupos de continentes abajo.
`pool` | Ruta y nombre del archivo de almacén relativa a la ruta del tema (por ejemplo, `Images/pool.svg`).
`map-mask` | Ruta y nombre del archivo de máscara del tema relativo a la ruta del tema (por ejemplo, `Images/map-mask.png`).
`format-version` | Versión del archivo de formato del tema (2.0).
`name` | Nombre con el que se muestra el tema.
`desc` | Descripción detallada del tema.
`fighters-flag-y-diff` | Diferencia de altura entre las imágenes de las banderas y los cañones.
`width-between-flag-and-fighter` | Número de píxeles entre el píxel de más a la izquierda de la bandera y el píxel más a la izquierda del cañón (cuando no está disparando ni explotando).

#### Grupos de descripción de imágenes

Cada tipo de imagen (bandera, infantería, caballería, cañón, cañón disparando y cañón explotando) se define mediante un grupo. Solo algunas imágenes tienen entrada de anchura. Esta entrada se usa para establecer posiciones relativas durante las animaciones; los cañones, disparando o explotando, no deberían «moverse» alrededor de la bandera del país durante la batalla.

Tabla 2.2. Entradas del grupo de descripción de imágenes

Nombre de la entrada | Significado
--- | ---
`width` | Anchura de referencia de los marcos de la imagen de la bandera.
`height` | Altura de referencia de los marcos de la imagen de la bandera.
`frames` | Número de fotogramas de la imagen.
`versions` | Número de versiones de las imágenes de la bandera.

#### Grupos de descripción de países

Para cada país listado en el grupo `onu`, la entrada de países tiene su propio grupo cuya etiqueta es el nombre del país. La tabla de abajo lista las entradas de estos grupos.

Tabla 2.3. Entradas de países

Nombre de la entrada | Significado
--- | ---
`id` | El entero que sirve como identificación única del país. Debe empezar en cero (0).
`name` | Nombre visible del país.
`<sprite>-point` | Cada tipo de imagen (bandera, infantería, etc.) del país se muestra en una determinada posición definida por esta entrada, consistente en dos enteros separados por una coma.
`neighbours` | Lista de las id de los vecinos del país actual.

#### Grupos de descripción de nacionalidades

Para cada nacionalidad listada en el grupo `onu`, la entrada de nacionalidades tiene su propio grupo, cuya etiqueta es el nombre de la nacionalidad. La tabla de abajo lista las entradas de estos grupos.

Tabla 2.4. Entradas de nacionalidades

Nombre de la entrada | Significado
--- | ---
`name` | Nombre de la nacionalidad (por ejemplo, `Japón`).
`leader` | Nombre que se le propondrá al jugador que elija su nacionalidad.
`flag` | Nombre de la imagen de la bandera del país en el archivo SVG de `onu`.

#### Grupos de descripción de los continentes

Para cada continente listado en el grupo `onu`, la entrada de continentes tiene su propio grupo, cuyo nombre es el nombre del continente. La tabla de abajo lista las entradas de estos grupos.

Tabla 2.5. Entradas de continentes

Nombre de la entrada | Significado
--- | ---
`name` | Nombre del continente (por ejemplo, `África`).
`id` | El entero que sirve de identificación única para el continente.
`bonus` | Número de ejércitos obtenidos al final de un turno para el jugador que posea todos los países del continente.
`continent-countries` | Lista de las id de los países dentro del continente actual.

#### Grupos de descripción de objetivos

Para cada objetivo listado en el grupo `onu`, la entrada de objetivos tiene su propio grupo, cuya etiqueta es el nombre del objetivo. La tabla de abajo lista las entradas de estos grupos.

Tabla 2.6. Entradas de objetivos

Nombre de la entrada | Significado
--- | ---
`type` | Tipo de objetivo. Puede ser continentes, países o un jugador.
`nbArmiesByCountry` | Establece el número mínimo de ejércitos que el jugador tendrá que poner en cada país.
`nbCountries` | Establece el número de países que debe poseer el jugador.
`nbCountriesFallback` | Para un tipo de juego de objetivos por jugador, si un jugador mata a otro, aquel establece el número de países que el jugador tendrá que conquistar.
`desc` | Una descripción completa del objetivo con marcadores de posición apropiados (falta más documentación aquí).
`continents` | Lista de ids de continentes que el jugador tendrá que conquistar.

### La carpeta de imágenes

Esta carpeta contiene los botones específicos de KsirK y el archivo de almacén SVG que contiene el mapa y todas las imágenes.

#### El archivo `pool.svg`

Este archivo SVG contiene el mapa y todas las imágenes del juego. Cada elemento se nombra de tal forma que el juego puede seleccionar y renderizar cada uno por separado.

En el tema predeterminado, las imágenes son banderas, infantería, caballería y cañones. La infantería representa un ejército, cinco para la caballería y diez para los cañones. Los cañones también se utilizan para representar a ejércitos en lucha. Por eso es por lo que hay tres clases de imágenes para los cañones: normal estático o moviéndose, disparando y explotando.

Cada imagen es la concatenación de varias vistas del objeto y, para cada vista, sus marcos. Las vistas se organizan verticalmente y los marcos horizontalmente. Dónde cortar la imagen en marcos individuales se obtiene dividiendo la altura de la imagen por el número de vistas y la anchura por el número de marcos. Estos datos se encuentran en el archivo `onu.desktop`.

Ejemplo de una imagen: `cannon.png`

Para imágenes de ejércitos, hay tres vistas diferentes, de arriba abajo:

- mirando a la derecha

- mirando a la izquierda y

- de frente

Para las banderas solo hay una vista. Todos los fondos de imagen deberían hacerse transparentes.

Ejemplo de imagen de una bandera: `italy.png`

Tabla 2.7. Elementos del almacén

Nombre del elemento | Imagen de muestra | Significado
--- | --- | ---
`map` |  | Mapa del mundo del tema. Los países pueden tener formas arbitrarias, pero deberían agruparse en continentes reconocibles a simple vista, por la localización o por el color.
`italy` |  | Bandera de la nación italiana. Hay una entrada así para cada nación.
`infantry` |  | Icono que representa un ejército.
`cavalry` |  | Icono que representa cinco ejércitos.
`cannon` |  | Icono que representa diez ejércitos.
`firing` |  | Icono que representa ejércitos durante un combate.
`exploding` |  | Icono que representa ejércitos perdiendo un combate.
`alaska` |  | Forma del país de Alaska. Esto se utiliza para resaltar el país. Hay una forma así para cada país. El color no se usa. Por lo tanto, el color es libre.
`reddices` |  | Dados rojos que se usan para mostrar el resultado de las batallas.
`bluedices` |  | Dados azules que se usan para mostrar el resultado de las batallas.
`mark1` |  | Esta marca se añade a imágenes de lucha para mostrar el número de ejércitos que representan, aquí 1. También hay unos elementos de `mark2` y `mark3`.

#### El archivo `map-mask.png`

Este es un archivo png que también representa el mapa del mundo del tema, pero con un código de colores que permite identificar de manera única a cada país. Los países deben tener al menos las mismas formas que los correspondientes países sobre el archivo `map.png`, de forma que los usuarios puedan hacer clic en cualquier parte de un país visible y seleccionen el bueno. Los países que son islas pequeñas, como Indonesia en el mapa predeterminado, pueden ser más grandes que el equivalente en el archivo `map.png` para facilitar la selección del país.

El componente azul (en el modelo RGB) del color de un país identifica al país: el índice 0 es el país 0 en el archivo `onu.xml`, el índice 1 es el país 1, etc. El blanco (0xFFFFFF en RGB) identifica la ausencia del país (tierra de nadie).

#### Las imágenes de los botones

Los nombres de archivo están incluidos en el código, por lo que no deberían modificarse. La tabla inferior muestra todos los botones que deben incluirse.

Tabla 2.8. Botones de la interfaz gráfica

Imagen | Nombre de archivo | Significado
--- | --- | ---
| `newNetGame.png` | Intenta unirse a un juego de red.
| `recycling.png` | Después de que todos los jugadores hayan situado sus ejércitos, es posible modificar la distribución (lo que se llama «reciclaje»). Este botón solicita hacer esa redistribución.
| `recyclingFinished.png` | Elige no redistribuir. Las ventanas de todos los clientes deben tener este botón pulsado para terminar la distribución.
| `nextPlayer.png` | Termina el turno del jugador actual y cambia al siguiente, o pasa al siguiente turno si el jugador actual era el último.
| `attackOne.png` | Elige empezar un ataque con un ejército.
| `attackTwo.png` | Elige empezar un ataque con dos ejércitos.
| `attackThree.png` | Elige empezar un ataque con tres ejércitos.
| `defendOne.png` | Elige defender un país atacado con un ejército.
| `defendTwo.png` | Elige defender un país atacado con dos ejércitos.
| `moveArmies.png` | Elige empezar el movimiento de tropas entre dos países (última acción del turno).

### Carpeta de sonidos

Esta carpeta contiene tres archivos de sonido:

- `roll.wav`, que suena cuando las tropas se mueven

- `cannon.wav`, que suena cuando se dispara, y

- `crash.wav`, que suena cuando un cañón explota

Uso de Editor de temas de KsirK
Uso de Editor de temas de KsirK

## Uso de Editor de temas de KsirK

Después de crear los gráficos en la carpeta apropiada y el archivo SVG, debes crear países, jugadores, etc., y asociarlos con el elemento SVG correcto del almacén. Esto se puede hacer con Editor de temas de KsirK. Ten en cuenta que cada parte de esta aplicación se describe automáticamente mediante ayudas emergentes y de contexto a las que puedes acceder de la forma habitual mediante el atajo de teclado Ctrl+F1.

Capítulo 3. Referencia de órdenes
Referencia de órdenes

# Capítulo 3. Referencia de órdenes

## La ventana principal de Editor de temas de KsirK

### Los botones

Cargar…

  Hace que el programa cargue un tema existente.

Guardar

  Guarda el tema editado actualmente.

Capítulo 4. Guía del desarrollador para Editor de temas de KsirK
Guía del desarrollador para Editor de temas de KsirK

# Capítulo 4. Guía del desarrollador para Editor de temas de KsirK

Consulta https://api.kde.org/ para la documentación de la API.

Capítulo 5. Preguntas y respuestas
Preguntas y respuestas

# Capítulo 5. Preguntas y respuestas

Es posible que este documento haya sido actualizado desde su instalación. Puede encontrar la última versión en http://docs.kde.org.

Capítulo 6. Créditos y licencia
Créditos y licencia

# Capítulo 6. Créditos y licencia

KsirK Skin Editor

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

Copyright de la documentación 2009 Gaël de Chalendar `(kleag AT free.fr)`

Documentación traducida por Rocío Gallego `(traducciones AT rociogallego.com)` y Kira J. Fernández `(kirajfdez AT gmail.com)`.

Corregida por Eloy Cuadra `(ecuadra AT eloihr.net)`.

Esta documentación está sujeta a los términos de la Licencia de Documentación Libre GNU.

Este programa está sujeto a los términos de la Licencia Pública General GNU.