CEGUI In Practice / CEGUI на практике: 5. Using .layout files
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
В этой главе мы поговорим об использовании .layout файлов. proVIDec 06.06.12 в 07:57 |
|
|
Это то, что необходимо масштабному проекту, в котором команда дизайнеров не собирается терпеть перекомпилирование исходников каждый раз, как они что-то изменили. proVIDec 06.06.12 в 08:51 |
||
|
Знакомьтесь, разметка proVIDec 06.06.12 в 08:47 |
||
|
Файл разметки (.layout) имеет формат xml файла. proVIDec 06.06.12 в 08:09 |
||
|
Существует по крайней мере два редактора для него. proVIDec 06.06.12 в 08:10 |
||
|
Первый - CEGUI LayoutEditor. Это достаточно развитый редактор. proVIDec 06.06.12 в 08:34 |
||
|
К сожалению, он устарел и на данный момент обновлений не планируется. proVIDec 06.06.12 в 08:35 |
||
|
Есть новый редактор (CEGUI Layout Editor 2), который доступен на SVN. proVIDec 06.06.12 в 08:41 |
||
|
Для того чтобы получить пользу от данного урока, мы не будем использовать специальные утилиты, а будем изменять .layout файл с помощью текстового редактора. proVIDec 06.06.12 в 08:43 |
||
|
Первое на что стоит обратить внимание, то что это xml файл. proVIDec 06.06.12 в 08:43 |
||
|
Так что нужно следовать стандартам XML. proVIDec 06.06.12 в 08:45 |
||
|
Второе, то что иерархия файла такая же, как и у CEGUI. proVIDec 06.06.12 в 08:46 |
||
|
Мы будем работать над созданием простой консоли. proVIDec 06.06.12 в 08:46 |
||
|
Я создал разметку консоли, это и будет темой этого туториала, создать чат, по типу таких, которые вы найдете в любой MMORPG. proVIDec 06.06.12 в 10:03 |
||
|
Вот, что мы сделаем сегодня: proVIDec 06.06.12 в 08:10 |
||
|
Прилагаю разметку: proVIDec 06.06.12 в 08:48 |
||
|
Ладно, я признаюсь, proVIDec 06.06.12 в 08:51 |
||
|
я сжульничал и использовал LayoutEditor. proVIDec 06.06.12 в 08:52 |
||
|
Но мне можно, так или иначе я знаю что делаю, так что не упрекайте меня и делайте свое домашнее задание. proVIDec 06.06.12 в 08:55 |
||
|
Эм. В любом случае, давайте посмотрим на то, как устроен .layout файл. proVIDec 06.06.12 в 08:52 |
||
|
Первая строчка, просто описание формата XML, которое для нас не важно. proVIDec 06.06.12 в 08:56 |
||
|
Следующая строка является началом .layout файла. proVIDec 06.06.12 в 08:59 |
||
|
Следующая: proVIDec 06.06.12 в 09:00 |
||
|
Вот где начинаются интересные вещи. proVIDec 06.06.12 в 09:00 |
||
|
Как вы можете видеть мы создаем окно типа "TaharezLook/FrameWindow" с именем "ConsoleRoot". proVIDec 06.06.12 в 09:01 |
||
|
Следующие строки: proVIDec 06.06.12 в 09:01 |
||
|
изменяют различные параметры всего окна. proVIDec 06.06.12 в 09:03 |
||
|
Они устанавливают шрифт, заголовок и область окна. proVIDec 06.06.12 в 09:04 |
||
|
Это также могло быть сделано в коде: proVIDec 06.06.12 в 09:05 |
||
|
Как вы можете видеть, скрипты очень полезная вещь, позволяющая изменять различные параметры вне кода. Это увеличивает работоспособность дизайнеров. proVIDec 06.06.12 в 09:07 |
||
|
А следующие строчки уже на подходе: proVIDec 06.06.12 в 09:05 |
||
|
Эти строчки встречаются еще до тега <Window/>, который закрывает ConsoleRoot, так что когда скрипт загрузится в CEGUI, EditBox будет сделан ребенком ConsoleRoot. proVIDec 06.06.12 в 09:29 |
||
|
А вы можете сказать какого типа будет это окно? proVIDec 06.06.12 в 09:30 |
||
|
Это будет окно ввода. proVIDec 06.06.12 в 09:31 |
||
|
Это часть консоли, куда пользователь будет писать то, что он хочет сказать. proVIDec 06.06.12 в 09:31 |
||
|
Я не буду углубляться в детали оставшихся окон, так как они очень схожи с двумя предыдущими. proVIDec 06.06.12 в 09:32 |
||
|
И все же. "ConsoleRoot/SendButton" будет кнопкой отправки сообщения, а "ConsoleRoot/ChatBox" будет полем, где сообщения будут отображаться. proVIDec 06.06.12 в 09:34 |
||
|
[Примечание: Как вы можете видеть я следую схеме именования Родитель/Потомок. proVIDec 06.06.12 в 09:35 |
||
|
Это НЕ обязательно, но я думаю, это помогает читать код во время отладки. proVIDec 06.06.12 в 09:35 |
||
|
Было бы неудобно назвать окно EditBox, так как это довольно распространенное имя, которое может вызвать конфликт с другими окнами вашего приложения, которые вы создадите позже.] proVIDec 06.06.12 в 09:37 |
||
|
Применение наших знаний proVIDec 06.06.12 в 09:34 |
||
|
Теперь, когда мы немного узнали о .layout файлах, нам нужно понять, как применить эти знания. proVIDec 06.06.12 в 09:40 |
||
|
Как распознать файл разметки в CEGUI. proVIDec 06.06.12 в 09:41 |
||
|
Этот код загружает разметку в новое окно. proVIDec 06.06.12 в 09:41 |
||
|
Отлично объяснил. proVIDec 06.06.12 в 09:42 |
||
|
Есть кое-что, о чем стоит упомянуть. Вы можете добавлять префикс к именам .layout файлов. proVIDec 06.06.12 в 09:43 |
||
|
Это будет полезным, если вы собираетесь добавлять один и тот же .layout файл несколько раз, так как после вторичной загрузки произойдет конфликт имен. proVIDec 06.06.12 в 09:44 |
||
|
Давайте изменим предыдущий пример. Как-то так: proVIDec 06.06.12 в 09:56 |
||
|
Теперь к именам окон добавится "_second" (т.е. "second_ConsoleRoot"). proVIDec 06.06.12 в 09:46 |
||
|
Это предотвратит ошибки с именами. proVIDec 06.06.12 в 09:46 |
