Страниц: [1]
Автор Тема: Генерирование событий (events) в GML  (Прочитано 617 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vendet
Администратор
Старожил форума
*

Репутация: 151
Offline Offline

Пол: Мужской
Награды:
Тру Админ)
Сообщений: 790


Админ псих :D


WWW
« : Февраль 13, 2010, 14:32:39 »

Генерирование событий (events) в GML

Как Вы знаете, Game Maker полностью управляется событиями. Все происходящие действия - результат событий. Существует множество различных событий. События создания и уничтожения происходят, когда образец создается или уничтожается. В каждом шаге, система сначала обрабатывает сигнальные события. Затем она обрабатывает события клавиатуры и мыши, а затем событие шага. После этого образцы устанавливаются в их новые позиции после чего обрабатывается событие столкновения. В заключении используется события рисования (draw), для того чтобы нарисовать образцы (обратите внимание, что когда имеются мультиплеерный вид, событие рисования вызывается многократно в каждом шаге). Вы можете также применить событие к текущему образцу изнутри части кода. Доступны следующие функции:
event_perform(type,numb)- Исполняет событие номера, типа к текущему образцу. Могут быть указаны следующие типы событий:
ev_create
ev_destroy
ev_step
ev_alarm
ev_keyboard
ev_mouse
ev_collision
ev_other
ev_draw
ev_keypress
ev_keyrelease
Когда имеются множественные события данного типа, номер (numb) может быть использован, для определения конкретного события. Для события сигнала (alarm event) номер может располагаться от 0 до 7. Для события клавиатуры (keyboard event) Вы должны использовать клавишные коды для клавиш. Для событий мыши (mouse events) Вы можете использовать следующие константы:
ev_left_button
ev_right_button
ev_middle_button
ev_no_button
ev_left_press
ev_right_press
ev_middle_press
ev_left_release
ev_right_release
ev_middle_release
Для события столкновения (collision event) Вы указываете индекс другого объекта. Для другого события Вы можете использовать следующие константы:
ev_outside
ev_boundary
ev_game_start
ev_game_end
ev_room_start
ev_room_end
ev_no_more_lives
ev_animation_end
Для события шага Вы указывая индекс, можете использовать следующие константы:
ev_step_normal
ev_step_begin
ev_step_end
event_perform_object(obj,type,numb) - Эти функции работают точно так же как функции приведенные выше, за исключением того, что в данном случае Вы можете определить события в другом объекте. Обратите внимание, что действия в этих событиях применяются к текущему образцу, а не к образцам данного объекта..
event_user(numb)- В других событиях Вы можете также определять 8 событий пользователя. Они выполняются только, если Вы вызываете функции лежащие в диапазоне от 0 до 7.
event_inherited()- Исполняет событие наследственности (inherited event). Работает только если образец имеет материнский объект.
Вы можете получить информацию о текущем выполняемом событии используя следующие (read-only) переменные:
event_type* - Тип текущего события начинающего выполнение.
event_number* - Номер текущего события начинающего выполнение.
event_object* - Индекс объекта для которого выполняется текущее событие.
event_action* - Индекс действия, которое в настоящее время выполняется (0 - первое событие, и т.д.).
Записан

1. Помог!? +1 в репу)
2. Новичок!? Читай правила ->>
- «Единственный путь стать умнее - играть с более умным противником», - основы шахмат, 1883 г.

Страниц: [1]
Печать
Перейти в: