Mighty Final Fight. Vol.-2

91338682_0.jpg

volume -2

-3 :: -2 :: -1 :: 0 :: 1 :: 2 :: 3 

Предисловие

В этом выпуске мы рассмотрим игровой цикл ГМ, а также основные события, в которых происходят какие-то действия.

События

На рисунке ниже показано окно выбранного объекта:

events.png

В области 1 мы будем добавлять события, в области 2 -- действия, которые экземпляр объекта должен выполнить при возникновении соответствующих событий. Иконка 3 это и есть piece of code, в котором мы будем описывать нужные действия с помощью GML.

Рассмотрим основные события

evets2.png

Create

Это событие случается, когда экземпляр объекта добавляется в комнату (фактически, создается). Событие одноразовое, то есть действия, описанные в этом событии, выполнятся всего один раз.

Destroy

Это событие случается, когда экземпляр объекта уничтожается. Событие опять-таки одноразовое.

Animation End

Это событие случается, когда заканчивается анимация привязанного к экземпляру объекта спрайта. Если у спрайта 3 кадра, то событие будет случаться в конце каждого третьего кадра. Если объект не описан никаким спрайтом, или спрайт однокадровый -- событие случается каждый игровой шаг.

Draw

Специальное событие рисования. Именно в нем мы будем описывать любые действия, связанные с рисованием (отображение текста, например). Случается каждый игровой шаг.

Alarm

Данное событие случается, когда запущенный обратный таймер (Alarm) достигает значения ноль. Грубо говоря, вы заводите будильник на определнное количество игровых шагов, и когда будильник зазвенит -- выполнятся определенные действия. Чтобы событие повторилось, будильник нужно будет завести еще раз.

Step

Собственно игровой шаг. В данном событии есть два подсобытия: Begin Step и End Step. Как можно догадаться из названий, прописанные действия будут выполняться в начале или конце игрового шага соответственно.

Остальные события нас интересуют мало.

Игровой цикл

Прежде чем мы рассмотрим игровой цикл, напомню вам, что у каждой комнаты есть переменная room_speed. По-умолчанию она равна 30. Что это значит.

Это значит, что в течение одной секунды игра выполнит 30 шагов (steps). То есть пройдет 30 игровых циклов.

В игровом цикле последовательно выполняются действия всех экземпляров всех объектов. То есть во время цикла последовательно происходят события, и если мы описали какие-то действия в данных событиях -- они будут выполняться.

Важно понимать последовательность событий в цикле. Она такова:

  1. Create
  2. Begin Step
  3. Alarm 0
  4. Keyboard and mouse
  5. Keyboard and mouse press
  6. Keyboard and mouse release
  7. Step
  8. End Of Path
  9. Outside room
  10. Intersect Boundary
  11. Collision events
  12. End Step
  13. Draw
  14. Animation End

То есть в начале выполнятся все действия, описанные в событиях Create. Потом в событиях Begin Step и так далее, пока не выполнятся действия в событиях Animation End. После этого начнется новый игровой цикл и события будут происходить заново, начиная с первой цифры.

Напоминаю еще раз, что событие Create происходит один раз, при создании экземпляра объекта. То есть каждый игровой цикл игра проверяет не появилось ли новых экземпляров, которые нужно создать? И если ответ отрицательный, начинается обработка действий в событиях Begin Step.

Почти все перечисленные события нам уже знакомы, кроме некоторых.

4-6 - События, случающиеся если зажаты (нажаты, отпущены) кнопки мыши или клавиатуры.
8 - При планировании движения с помощью путей это событие случается, когда достигается конец пути.
9 - При выхождении экземпляров объектов за пределы комнаты целиком
10 - При частичном выхождении экземпляров объектов за пределы комнаты
11 - В случае столкновения экземпляров объектов

Итого

Мы рассмотрели базовые особенности инструмента и наконец-то можем двигаться дальше. Возможно какие-то вещи требуют более подробного пояснения, напишите, пожалуйста, об этом в комментариях, и совместными усилиями мы постраемся их прояснить.

  • yeo
  • 07 февраля 2012, 17:29