OGRE Manual / Руководство OGRE: 2.8 Overlays
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Наложение позволяет сделать 2D- и 3D-элементы в верхней части обычного содержания сцены для создания эффектов, таких как над-головные экраны (HUD), системы меню, панели статуса и др.. Панель частоты кадров, которая входит в стандартную комплектацию OGRE - является примером наложения. Наложения могут содержать 2D и 3D элементы. 2D элементы используются для HUD, а 3D-элементы могут быть использованы для создания кабины или любого другого 3D-объекта, который вы хотели бы вынести в верхнюю часть остальной сцены. DCamer 19.05.10 в 19:10 |
|
|
Вы можете создавать наложения либо через метод SceneManager::createOverlay, либо определив их в скрипте в формате .overlay. Последнее, наиболее удобно, поскольку его легче настроить (без необходимости перекомпиляции кода). Заметьте, что вы может определить столько, сколько хотите наложений: они все вначале скрыты, отобразить их можно, вызвав метод "show()". Вы можете также показать несколько наложений сразу, с их Z-порядоком вызвав метод Overlay::setZOrder(). DCamer 19.05.10 в 19:16 |
||
|
<b>Создание 2D-элементов</b> DCamer 19.05.10 в 19:17 |
||
|
Класс OverlayElement тезис детальных 2D-элементов, которые будут добавлены к наложению. Все элементы, которые могут быть добавлены в наложение вытекают из этого класса. Это дает возможность (рекомендуется) пользователяи OGRE определить свои собственные подклассы OverlayElement в целях обеспечения собственных элементов управления. Основные общие черты всех OverlayElements такие вещи, как размер, положение, основные названия материала и т.д. Подклассы расширяют такое поведение для включения более сложные свойств и поведений. DCamer 19.05.10 в 19:24 |
||
|
Важным встроенным подклассом OverlayElement является OverlayContainer. OverlayContainer то же, что и OverlayElement, он может содержать другие OverlayElements, группируя их вместе (позволяя им "прикатится" друг к другу, например) и предоставляя их локальные координаты для удобства в списке. DCamer 19.05.10 в 19:26 |
||
|
Третий важный класс - OverlayManager. Всякий раз, когда приложение хочет создать двумерные элементы, чтобы добавить в наложение (или контейнер), то следует вызывать OverlayManager::createOverlayElement. Тип элемента, который вы хотите создать определяется строкой, по той причине, что она позволяет плагинам регистрировать новые типы OverlayElement без включения этих библиотек. Например, чтобы создать панель (простую прямоугольную область, которая может содержать другие OverlayElements) вы можете вызвать OverlayManager::getSingleton().createOverlayElement("Panel", "myNewPanel"); DCamer 19.05.10 в 19:37 |
||
|
<b>Добавление двумерных элементов в наложение</b> DCamer 19.05.10 в 19:33 |
||
|
Только OverlayContainer может быть добавлен непосредственно в наложение. Причина в том, что каждый уровень устанавливает Z-порядок элементов в контейнере, поэтому если вы вставили несколько контейнеров, то внутренний контейнеры выше в Z-порядке, чем внешний, убедитесь, что они будут корректно отображаться. Чтобы добавить контейнер (например, панель) в наложения, просто вызовите Overlay::add2D. DCamer 19.05.10 в 19:41 |
||
|
Если вы хотите добавить дочерние элементы в контейнер, вызовите OverlayContainer::addChild. Дочерние элементы могут быть самостоятельными OverlayElements или OverlayContainer. Помните, что положение дочернего элемента находится относительно левого верхнего угла, от его родителя. DCamer 19.05.10 в 19:43 |
||
|
<b>Несколько слов о двумерных координатах</b> DCamer 19.05.10 в 19:34 |
||
|
OGRE позволяет размещать и изменять размеры элементов на основе двух систем координат: <b>относительных (relative)</b> и <b>пиксельных (pixel)</b>. DCamer 24.05.10 в 14:41 |
||
|
<i><b>Пиксельный режим</b></i> DCamer 24.05.10 в 14:42 |
||
|
<i><b>Относительный режим</b></i> DCamer 24.05.10 в 14:55 |
||
|
<b>Преобразование наложений</b> DCamer 19.05.10 в 19:34 |
||
|
Еще одна приятная особенность наложений является возможность поворота, прокрутки и их масштаб в целом. Вы можете использовать это для увеличения/уменьшения системы меню, помещение его за кадр и другие приятные последствия. Смотрите методы Overlay::scroll, Overlay::rotate и Overlay::scale для получения дополнительной информации. DCamer 24.05.10 в 14:57 |
||
|
<i><b>Заскриптованные наложения</b></i> DCamer 24.05.10 в 14:58 |
||
|
<i><b>Системы GUI</b></i> DCamer 24.05.10 в 15:00 |
