FireURQ:Скинование Дат-Навирэ
Разбор файла скина для игры Дат-Навирэ. Перед прочтением рекомендуется ознакомиться с соответствующей документацией.
Файл 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.