CEGUI In Practice / CEGUI на практике: 1. Introduction
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Добро пожаловать в первый туториал из серии, помогающей понять как использовать CEGUI. proVIDec 01.06.12 в 15:49 |
|
|
В большей части туториалов будет применяться программный код, а не скрипты. proVIDec 01.06.12 в 17:42 |
||
|
И все же я постараюсь время от времени применять .layout. proVIDec 02.06.12 в 17:47 |
||
|
Однако, как только вы поймете, как использовать объекты в коде, вам станет легче использовать их в скриптах. proVIDec 01.06.12 в 17:43 |
||
|
[Прошу заметить, что я использую Ogre3D, так что все предустановки будут ориентированы на него.] proVIDec 01.06.12 в 17:45 |
||
|
Введение в CEGUI proVIDec 01.06.12 в 15:50 |
||
|
Первый момент - CEGUI использует множество самостоятельных классов. proVIDec 01.06.12 в 17:48 |
||
|
Это позволяет иметь глобальный доступ к классу во всем коде, но при этом иметь лишь один его экземпляр. proVIDec 02.06.12 в 18:16 |
||
|
Далее следуют классы, которые мы будем использовать в этом туториале. proVIDec 01.06.12 в 18:50 |
||
|
CEGUI::System - самый главный шаман. Класс содержит множество функций для установки и получения доступа к различным параметрам. proVIDec 02.06.12 в 17:50 |
||
|
CEGUI::WindowManager - управляет окнами CEGUI. Если вам нужно создать новое окно или удалить старое, WindowManager то, что вам нужно. proVIDec 01.06.12 в 15:51 |
||
|
CEGUI::SchemeManager - управляет схемами. proVIDec 01.06.12 в 15:48 |
||
|
CEGUI::FontManager - управляет различными шрифтами, которые вы будете использовать в своем приложении. proVIDec 01.06.12 в 15:51 |
||
|
Для начала proVIDec 01.06.12 в 16:53 |
||
|
Давайте приступим к работе и немного поговорим о процессе установки. proVIDec 01.06.12 в 15:59 |
||
|
Первое, что нужно сделать, это настроить систему и запуститься. proVIDec 01.06.12 в 17:50 |
||
|
Поскольку я использую Ogre, то я покажу код для настройки и запуска системы под Ogre. proVIDec 01.06.12 в 17:51 |
||
|
Есть множество способов запустить CEGUI для других систем рендеринга, proVIDec 01.06.12 в 16:56 |
||
|
которые описанны здесь <i>ссылка</i>. proVIDec 01.06.12 в 16:56 |
||
|
Вот способ для Ogre3d: proVIDec 01.06.12 в 16:00 |
||
|
Подключение необходимых заголовков proVIDec 01.06.12 в 16:00 |
||
|
[Примечание: Это новый метод, использующий функцию bootstrapSystem(), которая была введена в CEGUI 0.7.1. На вики есть примеры для более старых версий CEGUI. Обратите внимание на версию которую вы используете.] proVIDec 01.06.12 в 18:48 |
||
|
Код, приведенный выше, создает экземпляр системы отображения Ogre3D для CEGUI. proVIDec 02.06.12 в 17:57 |
||
|
После того, как вы пропишите его, вам не придется больше беспокоится о взаимосвязи библиотек. proVIDec 02.06.12 в 18:00 |
||
|
Он создает связь, которую Ogre использует для отображения элементов CEGUI. proVIDec 02.06.12 в 17:59 |
||
|
Следует заметить, что писать нужно именно так, если Ogre автоматически создает окно отображения (распространенный вариант). proVIDec 02.06.12 в 18:06 |
||
|
Если вы вручную создаете окно Ogre, то вам нужно будет вызвать перегруженную функцию CEGUI::OgreRenderer::bootstrapSystem (Ogre::RenderWindow*). proVIDec 02.06.12 в 18:04 |
||
|
Также стоит упомянуть, что bootstrapSystem() создает экземпляр CEGUI::System. proVIDec 02.06.12 в 18:11 |
||
|
Это важно, так как если у вас уже был создан CEGUI::System, вылезет ошибка. proVIDec 02.06.12 в 18:13 |
||
|
Ой-ой, теперь скрипты proVIDec 01.06.12 в 16:58 |
||
|
Теперь, когда мы оговорили очень скучные функции, proVIDec 01.06.12 в 17:00 |
||
|
нам нужно узнать основную информацию о CEGUI, перед тем как продолжать. proVIDec 01.06.12 в 17:01 |
||
|
CEGUI использует ОЧЕНЬ много скриптов. proVIDec 01.06.12 в 17:01 |
||
|
Большинство из которых, определяющие объекты CEGUI, находятся в различных .xml файлах. proVIDec 01.06.12 в 17:04 |
||
|
Для начала стоит рассказать о схемах (*.scheme). proVIDec 01.06.12 в 16:31 |
||
|
Любой объект, который вы будете использовать в вашем GUI, будет определен в .scheme файле. proVIDec 01.06.12 в 16:32 |
||
|
Также файл будет содержать информацию о других скриптах, описанных ниже. proVIDec 01.06.12 в 16:39 |
||
|
В последующих туториалах этот файл будет описан более подробно. proVIDec 01.06.12 в 16:41 |
||
|
Ниже приведен пример, можете пробежаться по нему глазами: proVIDec 01.06.12 в 16:45 |
||
|
Следующий вид скриптов о котором мы будем говорить - разметка (*.layout). proVIDec 01.06.12 в 16:31 |
||
|
Это также xml файл, который определяет разметку (вполне очевидно) окна, которое нужно отобразить на экране. proVIDec 01.06.12 в 17:12 |
||
|
К примеру, если мы хотим создать окно чата, то где-нибудь у нас должен быть файл ChatWindow.layout. proVIDec 01.06.12 в 17:13 |
||
|
Там будет описано как окно будет выглядеть (насколько оно будет большое, где на экране будет расположено и т.д.), где внутри этого окна будет поле для ввода сообщения, а где кнопка "отправить". proVIDec 01.06.12 в 17:15 |
||
|
Ниже приведен пример того, как примерно выглядит .layout файл: proVIDec 01.06.12 в 16:02 |
||
|
Другой вид скриптов, о котором стоит упомянуть - это шрифты (*.font). proVIDec 01.06.12 в 16:04 |
||
|
С помощью него описываются шрифты, которые вы будете использовать. Ниже пример: proVIDec 01.06.12 в 16:08 |
||
|
Еще один не менее важный вид скриптов - Imageset (*.imageset). proVIDec 01.06.12 в 16:07 |
||
|
В файлах этого типа определяется визуальный образ каждого объекта. proVIDec 01.06.12 в 16:13 |
||
|
В CEGUI визуальный образ объекта, тот вид в котором его видит пользователь, представлен в виде координат, которые определяют небольшую часть большой текстуры. proVIDec 01.06.12 в 16:17 |
||
|
К примеру, графическое представление обычной кнопки в .imageset будет некая позиция в изображении текстуры (*.png, *.bmp, *.jpg, и т.д.) с определенной высотой и шириной. proVIDec 01.06.12 в 16:20 |
