Зміст
Зовнішній вигляд KsirK можна повністю змінити. Для користувачів, які мають таланти у малюванні, створення нової шкірки буде дуже простим: скопіюйте існуючу шкірку і змініть графіку у ній, оновіть дані у файлі налаштувань .desktop (цю операцію виконає програма «Редактор шкірок KsirK»). Останнім кроком буде зміна файла опису даних, які слід встановлювати для шкірки.
Всі приклади (текст і зображення) взято з типової шкірки KsirK.
Data/: дані, що використовуються програмою для обробки зображень шкірки.CMakeLists.txt: Описує файли, які слід встановити.onu.desktop: головний файл опису шкірки. Його опис наведено нижче.
Images/: зображення шкірки (карта, спрайти тощо)CMakeLists.txt: Описує файли, які слід встановити.pool.svg: карта і всі спрайти, які використовуються у цій шкірці.map-mask.png: зображення, за яким програма визначає, над якою з країн на карті зараз знаходиться вказівник миші (див. нижче).*.png: всі інші зображення є зображеннями кнопок.
CMakeLists.txt: Описує файли, які слід встановити.Sounds/: звукові файли шкірки.
У цій теці зберігається лише один файл, world.desktop. У цьому файлі міститься опис вмісту шкірки. Цей файл використовується для опису компонування світу і способу його показу. Вам не потрібно заповнювати його вручну: це зробить за вас програма «Редактор шкірок KsirK». Але, з міркувань повноти викладу, ми опишемо його структуру.
Група 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 | Список ідентифікаторів континентів, які гравець має підкорити. |
У цій теці містяться кнопки, специфічні для KsirK і файл SVG з назвою pool (набір), у якому міститься карта і всі спрайти.
У цьому файлі SVG містяться всі спрайти гри. Кожен з його елементів має таку назву, щоб програма могла визначити і показати його окремо від інших.
У типовій шкірці спрайтами є прапори, піхота, кіннота і гармата. Піхота відповідає одній армії, кіннота — п’яти, а гармата — десяти. Гармати також використовуються для показу битв. Ось чому у типовій шкірці три види спрайтів гармат: звичайна нерухома гармата або гармата, що рухається, гармата, що стріляє, гармата, що вибухає.
Кожне з зображень спрайта складається з об’єднання різних виглядів об’єкта, а кожен з виглядів, — з кадрів. Вигляди має бути впорядковано вертикально, а кадри — горизонтально. Місце, де зображення буде розрізано визначається за висотою зображення і кількістю виглядів, а ширина за кількістю кадрів. Всі ці дані знаходяться у файлі onu.desktop.

Приклад зображення спрайта: cannon.png
Спрайти армій мають три різних вигляди, згори вниз:
дивиться праворуч
дивиться ліворуч і
в обличчя
Прапори мають лише один вигляд. Всі елементи тла спрайтів слід зробити прозорими.

Приклад спрайта зображення прапора: italy.png
Таблиця 2.7. Елементи набору
| Назва елемента | Зразок зображення | Призначення |
|---|---|---|
map | ![]() | Карта шкірки світу. Країни можуть мати довільну форму, але їх має бути зібрано у придатні для розпізнавання оком континенти, лише за розташуванням або лише за кольором. |
italy | ![]() | Прапор нації Італії. Кожна з націй повинна мати такий запис. |
infantry | ![]() | Піктограма для однієї армії. |
cavalry | ![]() | Піктограма для п’яти армій. |
cannon | ![]() | Піктограма для десяти армій. |
firing | ![]() | Піктограма для показу армій під час битви. |
exploding | ![]() | Піктограма для показу армій, які програли битву. |
alaska | ![]() | Форма країни Аляска. Її буде використано для підсвічування цієї країни. У кожної з країн лише одна така форма. Її колір не використовується, отже його можна обрати будь-яким. |
reddices | ![]() | Для показу результатів битви буде використано червоні кістки. |
bluedices | ![]() | Для показу результатів битви буде використано сині кістки. |
mark1 | ![]() | Цю позначку буде додано до спрайтів учасників битви, вона позначатиме кількість армій, які беруть участь у битві, у нашому прикладі 1. Існують також елементи mark2 і mark3. |
Цей файл 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 | Вибір початку пересування армій між двома країнами (остання дія протягом ходу). |


















