Підручник з програми Редактор шкірок KsirK

# Підручник з програми Редактор шкірок KsirK

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

Переклад українською: Юрій Чорноіван
версія KDE Gear 21.08 (14 жовтня 2021 року)

Авторське право © 2009 Gaël de Chalendar

Правова примітка

KsirK — комп’ютеризована версія відомої стратегічної гри. У програмі передбачено можливість повної зміни елементів інтерфейсу та зображень, що використовуються у грі (шкірок). У цьому підручнику ви знайдете пояснення щодо створення нових шкірок з нуля за допомогою переглядача файлів, редактора зображень SVG і «Редактор шкірок KsirK».

Список таблиць

2.1. Записи групи `onu`
2.2. Записи групи опису спрайта
2.3. Записи країн
2.4. Записи націй
2.5. Записи континентів
2.6. Записи мети
2.7. Елементи набору
2.8. Кнопки графічного інтерфейсу користувача

Розділ 1. Вступ
Вступ

# Розділ 1. Вступ

KsirK — комп’ютеризована версія відомої стратегічної гри. У програмі передбачено можливість повної зміни елементів інтерфейсу та зображень, що використовуються у грі (шкірок). У цьому підручнику ви знайдете пояснення щодо створення нових шкірок з нуля за допомогою переглядача файлів, редактора зображень SVG і «Редактор шкірок KsirK».

Для створення нової шкірки слід виконати три основних кроки: створити ієрархію тек, створити графічні зображення, зібрані у єдиному файлі SVG, і належно розташувати спрайти та елементи назв за допомогою програми «Редактор шкірок KsirK».

Розділ 2. Створення шкірки KsirK
Створення шкірки KsirK

# Розділ 2. Створення шкірки KsirK

Зовнішній вигляд KsirK можна повністю змінити. Для користувачів, які мають таланти у малюванні, створення нової шкірки буде дуже простим: скопіюйте існуючу шкірку і змініть графіку у ній, оновіть дані у файлі налаштувань `.desktop` (цю операцію виконає програма «Редактор шкірок KsirK»). Останнім кроком буде зміна файла опису даних, які слід встановлювати для шкірки.

Всі приклади (текст і зображення) взято з типової шкірки KsirK.

## Структура тек і файлів

- `Data/` : дані, що використовуються програмою для обробки зображень шкірки.

  - `CMakeLists.txt` : Описує файли, які слід встановити.

  - `onu.desktop` : головний файл опису шкірки. Його опис наведено нижче.

- `Images/` : зображення шкірки (карта, спрайти тощо)

  - `CMakeLists.txt` : Описує файли, які слід встановити.

  - `pool.svg` : карта і всі спрайти, які використовуються у цій шкірці.

  - `map-mask.png` : зображення, за яким програма визначає, над якою з країн на карті зараз знаходиться вказівник миші (див. нижче).

  - `*.png` : всі інші зображення є зображеннями кнопок.

- `CMakeLists.txt` : Описує файли, які слід встановити.

- `Sounds/` : звукові файли шкірки.

### Тека Data

У цій теці зберігається лише один файл, `world.desktop`. У цьому файлі міститься опис вмісту шкірки. Цей файл використовується для опису компонування світу і способу його показу. Вам не потрібно заповнювати його вручну: це зробить за вас програма «Редактор шкірок KsirK». Але, з міркувань повноти викладу, ми опишемо його структуру.

Група `onu` містить декілька записів країн, декілька записів націй і, нарешті, декілька записів континентів. Далі, різноманітні групи містять опис різних спрайтів, опис різних країн, континентів, націй і типів мети.

У наступних розділах наведено інформацію про вміст кожної з груп.

#### Група `onu`

Таблиця 2.1. Записи групи `onu`

Назва запису | Призначення
--- | ---
`width` | Ширина карти шкірки.
`height` | Висота карти шкірки.
`skinpath` | Шлях до шкірки, відносно шляху до даних програми (наприклад, `skins/default`)
`nb-countries` | Кількість країн (42 у типовій шкірці). Нижче має бути наведено таку саму кількість записів груп країн.
`nb-nationalities` | Кількість націй (6 у типовій шкірці). Нижче має бути наведено таку саму кількість записів груп націй.
`nb-continents` | Кількість континентів (6 у типовій шкірці). Нижче має бути наведено таку саму кількість записів груп континентів.
`pool` | Шлях і назва файла набору (pool), відносно шляху до шкірки (наприклад, `Images/pool.svg`).
`map-mask` | Шлях і назва файла маски карти, відносно шляху до шкірки (наприклад, `Images/map-mask.png`).
`format-version` | Версія формату файла шкірки (2.0).
`name` | Показана назва шкірки.
`desc` | Розгорнутий опис шкірки.
`fighters-flag-y-diff` | Різниця висот між спрайтами прапорів і гармат.
`width-between-flag-and-fighter` | Кількість пікселів між найлівішим пікселем прапора і найправішим пікселем простої гармати (без пострілу і вибуху).

#### Групи описів спрайтів

Кожен з типів спрайтів (прапор, піхота, кіннота, гармата, гармата, що стріляє, і гармата, що вибухає) визначається групою. Лише деякі з спрайтів мають запис ширини. Цей запис використовується для відносного позиціонування під час анімації: гармати, постріл і вибух не повинні «рухати» об’єкт навколо прапору країни під час битви.

Таблиця 2.2. Записи групи опису спрайта

Назва запису | Призначення
--- | ---
`width` | Еталонна ширина кадрів спрайта прапора.
`height` | Еталонна висота кадрів спрайта прапора.
`frames` | Кількість кадрів у спрайті.
`versions` | Кількість версій спрайтів прапора.

#### Групи опису країн

Кожна з країн має свою групу `onu`, запис країни має власну групу з міткою у вигляді назви країни. У наведеній нижче таблиці показано записи цих груп.

Таблиця 2.3. Записи країн

Назва запису | Призначення
--- | ---
`id` | Цілий унікальний ідентифікатор країни, який має починатися з нуля (0).
`name` | Назва країни, яку буде показано гравцеві.
`<sprite>-point` | Кожен з типів спрайтів (прапор, піхота тощо) на зображенні країни буде показано у певній позиції, яка визначається цим записом у вигляді двох цілих чисел, відокремлених комою
`neighbours` | Список ідентифікаторів країн, сусідніх з поточною країною.

#### Групи опису націй

Кожна з націй має свою групу `onu`, запис нації має власну групу з міткою у вигляді назви нації. У наведеній нижче таблиці показано записи цих груп.

Таблиця 2.4. Записи націй

Назва запису | Призначення
--- | ---
`name` | Назва нації (наприклад, `Japan`)
`leader` | Ім’я, яке буде запропоновано гравцеві, який обрав цю націю.
`flag` | Назва елемента спрайта прапора країни у файлі SVG `onu`.

#### Групи опису континентів

Кожен з континентів має свою групу `onu`, запис континенту має власну групу з міткою у вигляді назви континенту. У наведеній нижче таблиці показано записи цих груп.

Таблиця 2.5. Записи континентів

Назва запису | Призначення
--- | ---
`name` | Назва континенту (наприклад, `Africa`).
`id` | Унікальне ціле число для ідентифікації континенту.
`bonus` | Кількість армій, які отримуватиме наприкінці ходу гравець, який володіє всіма країнами на континенті.
`continent-countries` | Список ідентифікаторів країн на поточному континенті.

#### Групи опису мети

Кожну мету має бути включено до списку групи `onu`, запис мети має власну групу, чиєю міткою є назва метри. У наведеній нижче таблиці показано список записів цих груп.

Таблиця 2.6. Записи мети

Назва запису | Призначення
--- | ---
`type` | Тип мети. Може мати значення континенту, країн або гравця.
`nbArmiesByCountry` | Встановлює мінімальну кількість армій, які гравець може залишати у кожній з країн.
`nbCountries` | Встановлює кількість країн, якими має володіти гравець.
`nbCountriesFallback` | Призначено для типу мети гравця, якщо відповідного гравця буде вбито іншим гравцем, цим параметром встановлюється кількість країн, які має навзамін завоювати гравець.
`desc` | Повний текстовий опис мети з відповідними заповнювачами (потрібна додаткова документація).
`continents` | Список ідентифікаторів континентів, які гравець має підкорити.

### Тека Images

У цій теці містяться кнопки, специфічні для KsirK і файл SVG з назвою pool (набір), у якому міститься карта і всі спрайти.

#### Файл `pool.svg`

У цьому файлі SVG містяться всі спрайти гри. Кожен з його елементів має таку назву, щоб програма могла визначити і показати його окремо від інших.

У типовій шкірці спрайтами є прапори, піхота, кіннота і гармата. Піхота відповідає одній армії, кіннота — п’яти, а гармата — десяти. Гармати також використовуються для показу битв. Ось чому у типовій шкірці три види спрайтів гармат: звичайна нерухома гармата або гармата, що рухається, гармата, що стріляє, гармата, що вибухає.

Кожне з зображень спрайта складається з об’єднання різних виглядів об’єкта, а кожен з виглядів, — з кадрів. Вигляди має бути впорядковано вертикально, а кадри — горизонтально. Місце, де зображення буде розрізано визначається за висотою зображення і кількістю виглядів, а ширина за кількістю кадрів. Всі ці дані знаходяться у файлі `onu.desktop`.

Приклад зображення спрайта: `cannon.png`

Спрайти армій мають три різних вигляди, згори вниз:

- дивиться праворуч

- дивиться ліворуч і

- в обличчя

Прапори мають лише один вигляд. Всі елементи тла спрайтів слід зробити прозорими.

Приклад спрайта зображення прапора: `italy.png`

Таблиця 2.7. Елементи набору

Назва елемента | Зразок зображення | Призначення
--- | --- | ---
`map` |  | Карта шкірки світу. Країни можуть мати довільну форму, але їх має бути зібрано у придатні для розпізнавання оком континенти, лише за розташуванням або лише за кольором.
`italy` |  | Прапор нації Італії. Кожна з націй повинна мати такий запис.
`infantry` |  | Піктограма для однієї армії.
`cavalry` |  | Піктограма для п’яти армій.
`cannon` |  | Піктограма для десяти армій.
`firing` |  | Піктограма для показу армій під час битви.
`exploding` |  | Піктограма для показу армій, які програли битву.
`alaska` |  | Форма країни Аляска. Її буде використано для підсвічування цієї країни. У кожної з країн лише одна така форма. Її колір не використовується, отже його можна обрати будь-яким.
`reddices` |  | Для показу результатів битви буде використано червоні кістки.
`bluedices` |  | Для показу результатів битви буде використано сині кістки.
`mark1` |  | Цю позначку буде додано до спрайтів учасників битви, вона позначатиме кількість армій, які беруть участь у битві, у нашому прикладі 1. Існують також елементи `mark2` і `mark3`.

#### Файл `map-mask.png`

Цей файл png також відповідає карті шкірки світу, але з закодованими кольорами, за допомогою яких можна точно визначити кожну з країн. Країни повинні мати принаймні такі самі форми, які мають відповідні країни у файлі `map.png` так, щоб користувач, який навів вказівник на будь-яку частину певної країни і клацнув лівою кнопкою миші, міг обрати потрібну йому країну. Країни, які складаються з невеличких островів, на зразок Індонезії, можна збільшити порівняно з відповідниками з файла `map.png`, щоб полегшити вибір відповідної країни.

Компонент синього кольору (у моделі RGB) у кольорі країни призначено для ідентифікації країни: індексом 0 позначається країна 0 у файлі `onu.xml`, індексом 1 — країна 1 тощо. Білим кольором (0xFFFFFF у RGB) позначається відсутність країни (моря або, чому б ні, незаселені території).

#### Зображення кнопок

Назви файлів включено до коду програми, отже їх не можна змінювати. У наведеній нижче таблиці показано всі кнопки, які слід намалювати для теми.

Таблиця 2.8. Кнопки графічного інтерфейсу користувача

Зображення | Назва файла | Призначення
--- | --- | ---
| `newNetGame.png` | Спроба приєднання до гри мережею.
| `recycling.png` | Після того, які всі гравці розташують свої армії, можна розпочинати зміну дислокацій (а саме, перестановку армій). Ця кнопка запрошує до такої передислокації.
| `recyclingFinished.png` | Вибір відмови від перерозподілу. У всіх клієнтських вікнах має бути ця кнопка, яку слід буде натиснути для того, щоб повністю завершити розподіл.
| `nextPlayer.png` | Завершення ходу поточного гравця і перехід ходу до наступного гравця, або перехід до наступного ходу, якщо гравець ходив останнім.
| `attackOne.png` | Вибір початку атаки силами однієї армії.
| `attackTwo.png` | Вибір початку атаки силами двох армій.
| `attackThree.png` | Вибір початку атаки силами трьох армій.
| `defendOne.png` | Вибір захисту атакованої країни силами однієї армії.
| `defendTwo.png` | Вибір захисту атакованої країни силами двох армій.
| `moveArmies.png` | Вибір початку пересування армій між двома країнами (остання дія протягом ходу).

### Тека Sounds

У цій теці містяться три звукових файла:

- `roll.wav` відтворюється під час пересування армій

- `cannon.wav` відтворюється під час ведення вогню і

- `crash.wav` відтворюється під час вибуху гармати

Користування програмою «Редактор шкірок KsirK»
Користування програмою «Редактор шкірок KsirK»

## Користування програмою «Редактор шкірок KsirK»

Після створення графічних елементів у належній теці та файлі SVG, вам достатньо буде створити записи країн, гравців тощо, і пов’язати їх з належними елементами набору SVG. Це можна зробити за допомогою програми «Редактор шкірок KsirK». Зауважте, що ви можете дізнатися про призначення частин інтерфейсу програми за допомогою підказок та контекстної довідки, доступ до якої, зазвичай, можна отримати натисканням комбінації клавіш Ctrl+F1.

Розділ 3. Довідка щодо команд
Довідка щодо команд

# Розділ 3. Довідка щодо команд

## Головне вікно програми «Редактор шкірок KsirK»

### Кнопки

Завантажити…

  Наказує програмі завантажити існуючу шкірку.

Зберегти

  Зберігає поточну шкірку, яку ви редагуєте.

Розділ 4. Довідник розробника для програми «Редактор шкірок KsirK»
Довідник розробника для програми «Редактор шкірок KsirK»

# Розділ 4. Довідник розробника для програми «Редактор шкірок KsirK»

Будь ласка, відвідайте сторінку https://api.kde.org/. Там ви знайдете відомості щодо програмного інтерфейсу (API).

Розділ 5. Запитання і відповіді
Запитання і відповіді

# Розділ 5. Запитання і відповіді

Можливо, цей документ було оновлено з часу, коли ви встановили програму. Останню версію цього документа ви можете знайти за адресою https://docs.kde.org/.

Розділ 6. Подяки і ліцензія
Подяки і ліцензія

# Розділ 6. Подяки і ліцензія

KsirK Skin Editor

Авторські права на програму належать Gaël de Chalendar `(kleag AT free.fr)`, ©2009

Авторські права на документацію до програми належать Gaël de Chalendar `(kleag AT free.fr)`, ©2009

Переклад українською: Юрій Чорноіван `(yurchor AT ukr.net)`

Цей документ поширюється за умов дотримання GNU Free Documentation License.

Ця програма поширюється за умов дотримання GNU General Public License.