FireURQ:Скинование Дат-Навирэ

Материал из IFВики
Перейти к навигации Перейти к поиску

Разбор файла скина для игры Дат-Навирэ. Перед прочтением рекомендуется ознакомиться с соответствующей документацией.

Файл skin.xml, входящий в состав игры, содержит следующее:

<?xml version="1.0" encoding="window-1251"?>
<skin>
  <screen width="600" height="800" />
  <resources>
   <texture name="res" file="tex.png" />
   <font name="sysfont" file="Palatino_18.fnt"/>
   <font name="menufont" file="Palatino_16.fnt"/>
   <buttonframe name="tbuttons" tex="res" font="sysfont" texx="0" texy="60" width="1" height="26" leftw="1" midw="1" cnormal="FF888888" cfocused="ff3a3a3a"/>
  </resources>
  <splash bgcolor="FFFFFF" vcolor="ff3a3a3a">
   <logo tex="res" tx="0" ty="460" width="220" height="50"/>  
   </splash>
  <main bgcolor="FFFFFF">
   <textpane bframe="tbuttons" font="sysfont" left="30" top="10" width="540" height="740"/>
   <menus font="menufont" bgcolor="ffffffff" bordercolor="ff3a3a3a" vindent="2" hindent="1" textcolor="ff3a3a3a" disabledcolor="FF888888" selectioncolor="ff3a3a3a" selectedcolor="ffffffff">
     <sysbutton tex="res" tx="0" ty="0" width="20" height="55" posx="0" posy="0"/>
     <sysmenu posx="30" posy="10" datum="lt"/>
   </menus>
  </main>
</skin>

Здесь,

<screen width="600" height="800" /> - описывает размеры окна, в котором запустится игра (600х800). При таких параметрах получается "портретная" ориентация окна, в отличие от стандартной, "альбомной" (800х600). Так же, при этих параметрах, полноэкранный режим не работает.

<texture name="res" file="tex.png" /> - подгружается tex.png, файл с графикой для игры, ему задаётся внутреннее имя "res".

Данный файл используется для вывода всей графики в игре, для скинования в нём нужны только участок с ресурсами кнопки "Меню" и участок с логотипом.

<font name="sysfont" file="Palatino_18.fnt"/> - подгружается заранее подготовленный шрифт Palatino_18.fnt для основного текста, ему задаётся внутреннее имя "sysfont".

<font name="menufont" file="Palatino_16.fnt"/> - то же самое для текста в пунктах меню и инвентаря.

<buttonframe name="tbuttons" tex="res" font="sysfont" texx="0" texy="60" width="1" height="26" leftw="1" midw="1" cnormal="FF888888" cfocused="ff3a3a3a"/> - описание фрейма для кнопок.

Содержит:

  • внутреннее имя "tbuttons";
  • ресурс, из которого берётся графика для кнопок (ранее объявленный "res");
  • шрифт для надписей (ранее объявленный "sysfont");
  • texx, texy - координаты верхнего левого угла области на ресурсе "res" (т.е. на картинке tex.png), в которой задана графика для кнопок;
  • width, height - ширину и высоту этой области;
  • leftw, midw - левую и среднюю части кнопки (по этому и предыдущему пункту см. документацию);
    • Примечание: здесь ширина, левая и средняя части кнопки равны 1 пикселю, потому что в игре графика для кнопок вообще не используется, но эти параметры должны быть описаны, иначе программа использует стандартные кнопки;
  • цвета надписи при двух состояниях кнопки: нормальном и фокусированном;

<splash bgcolor="FFFFFF" vcolor="ff3a3a3a"> - описание экрана приветствия FireURQ с заданием цвета фона bgcolor и цвета надписи в нижнем правом углу vgcolor.

<logo tex="res" tx="0" ty="460" width="220" height="50"/> - описание логотипа, который показывается на экране приветствия (серая надпись "cheshire").

Содержит:

  • ресурс, из которого берётся нужная графика (ранее объявленный "res");
  • tx, ty - координаты верхнего левого угла логотипа на картинке ресурса;
  • width, height - его ширину и высоту;

<main bgcolor="FFFFFF"> - описание цвета фона;

<textpane bframe="tbuttons" font="sysfont" left="30" top="10" width="540" height="740"/> - описание основного текстового поля.

Содержит:

  • присвоение кнопкам ранее объявленного фрейма "tbuttons";
  • присвоение шрифта тексту (ранее объявленный "sysfont");
  • left, top - координаты верхнего левого угла текстового поля в окне проигрывателя;
  • width, height - его ширину и высоту;
    • При таких координатах и размерах текстового поля, текст визуально будет выводится с отступами в 30 пикселей слева и справа, 10 пикселей сверху и 50 пикселей снизу.

<menus font="menufont" bgcolor="ffffffff" bordercolor="ff3a3a3a" vindent="2" hindent="1" textcolor="ff3a3a3a" disabledcolor="FF888888" selectioncolor="ff3a3a3a" selectedcolor="ffffffff"> - описание внешнего вида системных меню (при нажатии на кнопки "Меню" и "Инвентарь").

Содержит:

  • присвоение шрифта надписям (ранее объявленный "menufont");
  • цвет фона меню с указанием альфа-составляющей (можно делать меню полупрозрачными);
  • цвет рамки и горизонтальных линий между пунктами;
  • vindent, hindent - вертикальные зазоры между пунктами меню и горизонтальные зазоры между пунктами и рамкой;
  • textcolor, disabledcolor, selectedcolor - цвета надписей в обычном состоянии, при недоступном пункте (например, надпись "Загрузить сохранение", когда сохранений нет) и цвет надписи в выбранном пунтке;
  • selectioncolor - цвет выбранного пункта (не путать с selectedcolor - цветом надписи в таком пункте);

<sysbutton tex="res" tx="0" ty="0" width="20" height="55" posx="0" posy="0"/> - описание внешнего вида кнопки для системного меню.

Содержит:

  • ресурс, из которого берётся графика ("res");
  • tx, ty - координаты верхнего левого угла кнопки на картинке ресурса;
  • width, height - её ширину и высоту;
  • posx, posy - положение кнопки в окне проигрывателя (левый верхний угол).

<sysmenu posx="30" posy="10" datum="lt"/> - задание положения самого системного меню при появлении.

Содержит:

  • координаты на экране при появлении;
  • тип привязки к этим координатам. lt (left-top) означает, что будет привязываться левый верхний угол выпадающего меню.


С такими настройками внешний вид игры значительно преображается:

Результат преобразований


В игре не используется инвентарь, поэтому его меню никак не описывается. Также не рассмотрены возможности тега decorations.