Вверх ↑
2013-07-29 74
Игровой интерфейс - Построение GUI

Построение GUI
Введение
Все шаблоны с описанием GUI интерфейсов можно найти в файлах по адресу /bin/minecraft.jar/gui/*.xml
Описание экрана
Основной экран любого диалога, который определяет их общий стиль, описывается в файле screen.xml и имеет следующий формат:
описание основного шаблона экрана

‹?xml version="1.0" encoding="UTF-8" ?›
‹screen›
  ‹controls›
    ‹-- верхняя панель --›
    ‹hlayout width="100%" height="32" name="header"›
      ‹backgroundcolor color="-1"/›
      ‹controls›
        ‹hlayout name="hleft" width="100" paddingLeft="5"›
          ‹-- не используется --›
        ‹/hlayout›
        ‹hlayout name="hcenter" align="center" sizeWidth="fill"›
          ‹controls›
            ‹-- содержит заголовок диалога --›
            ‹label name="titleScreen" title="..." sizeWidth="fill" align="center"/›
          ‹/controls›
        ‹/hlayout›
        ‹hlayout width="100" paddingRight="5" spacing="5"›
          ‹controls›
            ‹hlayout name="hright" sizeWidth="fill" halign="right" spacing="5"›
              ‹-- сюда вставляются дополнительные кнопки с картинками --›
            ‹/hlayout›
            ‹button id="33333" title="?" width="20" name="helpButton" visible="false"/›
          ‹/controls›
        ‹/hlayout›
      ‹/controls›
    ‹/hlayout›
    
    ‹-- центральная контентная область --›
    ‹single width="100%" name="body" valign="center" halign="center"›
      ‹-- по умолчанию любой контент выравнивается по центру экрана --›
    ‹/single›
    
    ‹-- нижняя панель --›
    ‹hlayout width="100%" height="32" name="footer"›
      ‹backgroundcolor color="-1"/›
      ‹controls›
        ‹hlayout name="fleft" width="200" paddingLeft="5" spacing="5"›
          ‹-- левая область --›
        ‹/hlayout›
        ‹hlayout name="fcenter" align="center" sizeWidth="fill"›
          ‹-- центральная область --›
        ‹/hlayout›
        ‹hlayout name="fright" width="200" paddingRight="5" halign="right" spacing="5"›
          ‹-- правая область --›
        ‹/hlayout›
      ‹/controls›
    ‹/hlayout›
  ‹/controls›
‹/screen›

Все последующие диалоги наследуют этот шаблон и вставляют свои элементы в те или иные его части. Для этого используется следующий формат описания:

описание основного шаблона экрана

‹?xml version="1.0" encoding="UTF-8" ?›
‹content›
  ‹NAME1›
    ‹-- тело элемента --›
  ‹/NAME1›
  ‹NAME2›
    ‹-- тело элемента --›
  ‹/NAME2›
  ...
  ‹NAME№›
    ‹-- тело элемента --›
  ‹/NAME№›
‹/content›
где NAME№ это название любого элемента из screen.xml, заданное в аттрибуте name
Теги
Допустимо использование следующих тегов:

Документ - только в качестве root тегов
Элементы управления - только внутри тега controls
Свойства - только внутри тегов элементов управления
  • controls
  • item
  • backgroundcolor
  • backgroundgradient
  • backgroundtexture
  • backgroundstretchtexture
Тег screen
Определяет основной шаблон всех экранов клиента.
Тег content
Содержит только теги с именами из шаблона основной страницы.

Параметр Описание
title заголовок диалога
help идентификатор языкового файла со справкой к диалогу

Тег hlayout
Контейнер с горизонтальным расположением элементов в одну линию.

Параметр Описание
x позиция элемента по оси X
y позиция элемента по оси Y
width длина элемента
height высота элемента
halign выравнивание дочерних элементов по горизонтали
valign выравнивание дочерних элементов по вертикали
spacing расстояние между элементами

Тег vlayout
Контейнер с вертикальным расположением элементов в одну линию.

Параметр Описание
x позиция элемента по оси X
y позиция элемента по оси Y
width длина элемента
height высота элемента
halign выравнивание дочерних элементов по горизонтали
spacing расстояние между элементами

Тег scrollbox
Контейнер с вертикальным расположением элементов в одну линию и возможностью их прокрутки.

Параметр Описание
x позиция элемента по оси X
y позиция элемента по оси Y
width длина элемента
height высота элемента
align выравнивание дочерних элементов по горизонтали

BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)
Комментарий
...