Шаг 1: Создание сцены; описание утилиты SceneEdit

Запустите ProjectMan и откройте файл «scene_tut.wpr» (он находится в поддиректории «scene_tut» установочной директории WME). Проект состоит из сцен для каждого шага этого учебника. Вы можете поэкспериментировать с любой сценой, редактируя её в программе SceneEdit, и сразу же посмотреть результаты, выполнив команду «Запустить игру» («Run game»).

Сейчас мы попробуем создать новую сцену. Щёлкните правой кнопкой мыши на папке «scenes» и выполните команду «Добавить сцену…» («Add scene…»).

 

Появится окно «Выбор шаблона» («Template selection»). Выберите шаблон «Сцена 800x600» («Empty scene 800x600») и наберите имя сцены MyScene.

(Внимание: Вам обязательно нужно назвать сцену MyScene, т. к. это имя использует учебный проект)

Нажмите OK и ProjectMan создаст новую сцену.

Теперь нам нужно импортировать фоновую картинку для нашей сцены. Рекомендуется сохранять все изображения для сцены в ту же папку, где находится она сама. Картинка для нашего примера уже готова и лежит в папке «tutorial\gfx». Щёлкните правой кнопкой мыши на папке «MyScene» и выполните команду «Импортировать->Импортировать файл…» («Import->Import file…»). Перейдите в папку «scene_tut\data\tutorial\gfx» и выберите файл «background.bmp». ProjectMan скопирует этот файл в папку сцены. (Внимание: Вы также можете просто скопировать этот файл в папку сцены любым привычным для Вас способом)

Теперь у нас есть сцена с фоновой картинкой.

Вы можете протестировать результат. Нажмите кнопку «Запустить игру» («Run game») на панели инструментов. Вы можете посмотреть Вашу новую локацию, нажав пункт меню «My Scene». В таком виде сцена выглядит не очень впечатляюще, не правда ли? Персонаж может ходить где угодно, сцена не прокручивается и масштаб выглядит странным образом.

Выйдите из игры (нажмите Escape для возврата в окно выбора локаций, затем ещё раз для выхода).

В дереве проекта ProjectMan щёлкните правой кнопкой мыши на файле «MyScene.scene» и выполните команду «Редактировать…» («Edit…») (Вы также можете сделать двойной щелчок на этом файле, что приведёт к аналогичному результату). ProjectMan откроет сцену в программе SceneEdit.

SceneEdit позволяет Вам редактировать файлы сцен. Справа Вы видите то, как будет выглядеть сцена, там же Вы можете манипулировать её элементами. Слева расположена панель управления. Она отображает список слоёв (слои будут рассмотрены далее в этом учебнике), список узлов и свойства выбранного узла.

Попробуйте повыбирать различные узлы в списке (в нашем случае есть только два узла: «background» and «floor»). Вы увидите, что выбранный узел будет отображаться на сцене справа с помощью подсветки. Также изменит своё содержимое окно «Настройки» («Properties») .

Когда мы тестировали сцену, она не прокручивалась, не так ли? Давайте исправим это. Наша фоновая картинка имеет размер 1000x716 пикселов, но размерность сцены задана 800x600. Мы изменим размерность сцены в соответствии с фоновой картинкой. Выберите узел «main» в списке, а затем нажмите кнопку «Свойства слоя» («Layer properties»). Появится окно диалога с таким же названием. Измените размерность на 1000x716 и нажмите OK.

Теперь, т. к. наша игра будет работать с разрешением 800x600, а наша сцена имеет размер 1000x716, WME будет знать, что нужно прокручивать сцену.

И последнее, что нам осталось сделать на данном этапе - это задать области, где персонаж может ходить, а где нет. Щёлкните мышкой на узле «floor». Этот регион задаёт проходимый участок сцены. Мы изменим его форму так, чтобы она соответствовала расположению комнаты. Благодаря этому персонаж не будет ходить по стенам.

Регионы могут иметь практически любую форму. Вы можете добавлять или удалять вершины многоугольника, которым задан регион, а также перемещать их, создавая таким образом нужную Вам форму.

Вершины добавляются с помощью кнопки «Добавить точку» («Add point»). Нажмите эту кнопку, а затем щёлкните мышью в любом месте сцены. SceneEdit добавит новую вершину для региона (программа попытается вычислить между какими двумя вершинами Вы хотите разместить новую). Обратите внимание, что курсор мыши изменит свою форму, обозначая таким образом область, куда может быть помещена новая вершина. Вы можете отменить размещение точки, сделав правый щелчок мышью.

Подобным образом Вы можете удалить уже существующую вершину с помощью кнопки «Удалить точку» («Remove point»). Нажмите кнопку, затем выберите вершину для удаления.

Внимание: регион должен иметь по меньшей мере три вершины.

 

Также Вы можете перетаскивать вершины мышью.


Совет

Если Вы начали перетаскивать объект по ошибке, то Вы можете отменить операцию, сделав правый щелчок мышью. Объект вернётся на исходную позицию. Также Вы можете воспользоваться командой «Отменить» («Undo»).

Теперь попробуйте изменить форму узла «floor» так, как показано на иллюстрации.

Сохраните сцену и выйдите из программы SceneEdit. Попробуйте запустить игру. Теперь сцена будет прокручиваться, а персонаж ходить только по полу.

Переходите на Шаг 2: Объекты (entities) сцены.

 

Внимание: Если Вы случайно выбрали шаблон сцены 640x480 вместо 800x600, то Вы увидите, что персонаж не способен передвигаться по сцене, а его цвет имеет красноватый оттенок. Это означает, что он находится вне проходимой области (в нашем случае, вне региона «floor», который мы только что создали). Чтобы исправить это, Вам нужно изменить начальную позицию персонажа для этой сцены. Она задаётся с помощью сценария. О сценариях будет рассказано более подробно далее в этом учебнике, а прямо сейчас мы немного отредактируем файл сценария scene_init.script. Этот сценарий задаёт начальное состояние сцены, Вы найдёте его в поддиректории «scr» Вашей вновь созданной сцены. Сделайте двойной щелчок мышью на этом файле и он будет открыт в текстовом редакторе. Недалеко от начала сценария находится строка actor.SkipTo(320, 300); Это и есть начальная позиция нашего персонажа. Просто измените координаты на 320, 500 и сохраните файл. Теперь, если Вы запустите игру и выберете локацию MyScene, персонаж сможет передвигаться по комнате.