Mighty Final Fight. Vol.-2
volume -2
-3 :: -2 :: -1 :: 0 :: 1 :: 2 :: 3
Предисловие
В этом выпуске мы рассмотрим игровой цикл ГМ, а также основные события, в которых происходят какие-то действия.
События
На рисунке ниже показано окно выбранного объекта:
В области 1 мы будем добавлять события, в области 2 -- действия, которые экземпляр объекта должен выполнить при возникновении соответствующих событий. Иконка 3 это и есть piece of code, в котором мы будем описывать нужные действия с помощью GML.
Рассмотрим основные события
Create
Это событие случается, когда экземпляр объекта добавляется в комнату (фактически, создается). Событие одноразовое, то есть действия, описанные в этом событии, выполнятся всего один раз.
Destroy
Это событие случается, когда экземпляр объекта уничтожается. Событие опять-таки одноразовое.
Animation End
Это событие случается, когда заканчивается анимация привязанного к экземпляру объекта спрайта. Если у спрайта 3 кадра, то событие будет случаться в конце каждого третьего кадра. Если объект не описан никаким спрайтом, или спрайт однокадровый -- событие случается каждый игровой шаг.
Draw
Специальное событие рисования. Именно в нем мы будем описывать любые действия, связанные с рисованием (отображение текста, например). Случается каждый игровой шаг.
Alarm
Данное событие случается, когда запущенный обратный таймер (Alarm) достигает значения ноль. Грубо говоря, вы заводите будильник на определнное количество игровых шагов, и когда будильник зазвенит -- выполнятся определенные действия. Чтобы событие повторилось, будильник нужно будет завести еще раз.
Step
Собственно игровой шаг. В данном событии есть два подсобытия: Begin Step и End Step. Как можно догадаться из названий, прописанные действия будут выполняться в начале или конце игрового шага соответственно.
Остальные события нас интересуют мало.
Игровой цикл
Прежде чем мы рассмотрим игровой цикл, напомню вам, что у каждой комнаты есть переменная room_speed. По-умолчанию она равна 30. Что это значит.
Это значит, что в течение одной секунды игра выполнит 30 шагов (steps). То есть пройдет 30 игровых циклов.
В игровом цикле последовательно выполняются действия всех экземпляров всех объектов. То есть во время цикла последовательно происходят события, и если мы описали какие-то действия в данных событиях -- они будут выполняться.
Важно понимать последовательность событий в цикле. Она такова:
- Create
- Begin Step
- Alarm 0
- Keyboard and mouse
- Keyboard and mouse press
- Keyboard and mouse release
- Step
- End Of Path
- Outside room
- Intersect Boundary
- Collision events
- End Step
- Draw
- Animation End
То есть в начале выполнятся все действия, описанные в событиях Create. Потом в событиях Begin Step и так далее, пока не выполнятся действия в событиях Animation End. После этого начнется новый игровой цикл и события будут происходить заново, начиная с первой цифры.
Напоминаю еще раз, что событие Create происходит один раз, при создании экземпляра объекта. То есть каждый игровой цикл игра проверяет не появилось ли новых экземпляров, которые нужно создать? И если ответ отрицательный, начинается обработка действий в событиях Begin Step.
Почти все перечисленные события нам уже знакомы, кроме некоторых.
4-6 - События, случающиеся если зажаты (нажаты, отпущены) кнопки мыши или клавиатуры.
8 - При планировании движения с помощью путей это событие случается, когда достигается конец пути.
9 - При выхождении экземпляров объектов за пределы комнаты целиком
10 - При частичном выхождении экземпляров объектов за пределы комнаты
11 - В случае столкновения экземпляров объектов
Итого
Мы рассмотрели базовые особенности инструмента и наконец-то можем двигаться дальше. Возможно какие-то вещи требуют более подробного пояснения, напишите, пожалуйста, об этом в комментариях, и совместными усилиями мы постраемся их прояснить.
- 07 февраля 2012, 17:29
Не хочешь добавить "меню"? Чтоб проще скакать было от темы к теме.
А Vol.-2 куда делся?))
)) Зарезервировал под краткий обзор GML.
Я спросил в предыдущем посте, нужно ли рассматривать сам язык. Ответов пока нет, так что если не нужно, то Vol.-3 станет Vol.-2 и все будет хорошо ))
доходчиво, по полочкам)