# Підручник з програми &i18n-ksirkskineditor;

Gaël Kleag de Chalendar

    Kleag@free.fr

Юрій Чорноіван

    yurchor@ukr.net

Переклад українською
2009 Gaël de Chalendar
&FDLNotice;
14 жовтня 2021 року
KDE Gear 21.08

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

KDE редактор вільна гра GPL risk шкірка стратегія

## Вступ

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

Ось знімок вікна програми «&i18n-ksirkskineditor;»
Знімок вікна

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

## Створення шкірки &ksirk;

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

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

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

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

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

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

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

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

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

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

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

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

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

#### Тека Data

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

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

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

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

Записи групи `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` | Кількість пікселів між найлівішим пікселем прапора і найправішим пікселем простої гармати (без пострілу і вибуху).

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

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

Записи групи опису спрайта

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

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

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

Записи країн

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

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

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

Записи націй

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

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

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

Записи континентів

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

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

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

Записи мети

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

#### Тека Images

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

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

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

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

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

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

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

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

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

- в обличчя

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

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

Елементи набору

Назва елемента | Зразок зображення | Призначення
--- | --- | ---
`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) позначається відсутність країни (моря або, чому б ні, незаселені території).

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

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

Кнопки графічного інтерфейсу користувача

Зображення | Назва файла | Призначення
--- | --- | ---
| `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` відтворюється під час вибуху гармати

### Користування програмою «&i18n-ksirkskineditor;»

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

Ось знімок вікна програми «&i18n-ksirkskineditor;»
Знімок вікна

## Довідка щодо команд

### Головне вікно програми «&i18n-ksirkskineditor;»

#### Кнопки

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

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

Зберегти
Зберегти

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

## Довідник розробника для програми «&i18n-ksirkskineditor;»

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

## Запитання і відповіді

&updating.documentation;

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

&ksirkskineditor;

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

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

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

&underFDL; &underGPL;
&documentation.index;