Генерация событий

Как Вы уже знаете, Game Maker является полностью управляемым событиями. Все действия случаются после результатов событий. Есть множество различных событий. События создания и уничтожения случаются, когда образец объекта создаётся или уничтожается. В каждом шаге, сначала система проводит операции события сигнала-таймера. Затем, оперирует события клавиатуры и события мыши, а затем событие шага. После того, как образцы объектов будут установлены в свои новые позиции, после чего прооперируется событие столкновения. Наконец, используется событие рисования для рисования образцов объекта (отметьте, что когда есть много видов, то событие рисования вызывается многочисленное количество раз в каждом шаге). Вы можете также применить события к текущему образцу объекта из части кода. Следующие функции существуют:

event_perform(type,numb) Выполняет событие numb, указанного типа type для текущего образца объекта. Следующие типы событий могут быть указаны:

ev_create
ev_destroy
ev_step
ev_alarm
ev_keyboard
ev_mouse
ev_collision
ev_other
ev_draw
ev_keypress
ev_keyrelease
Когда имеются многочисленные события заданного типа, numb может использоваться, чтобы определить точное событие. Для события сигнала-таймера, numb может колебаться от 0 до 11. Для события клавиатуры, Вы должны использовать клавиатурный код для клавиш. Для событий мыши, Вы можете использовать следующие константы:

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
ev_mouse_enter
ev_mouse_leave
ev_mouse_wheel_up
ev_mouse_wheel_down
ev_global_left_button
ev_global_right_button
ev_global_middle_button
ev_global_left_press
ev_global_right_press
ev_global_middle_press
ev_global_left_release
ev_global_right_release
ev_global_middle_release
ev_joystick1_left
ev_joystick1_right
ev_joystick1_up
ev_joystick1_down
ev_joystick1_button1
ev_joystick1_button2
ev_joystick1_button3
ev_joystick1_button4
ev_joystick1_button5
ev_joystick1_button6
ev_joystick1_button7
ev_joystick1_button8
ev_joystick2_left
ev_joystick2_right
ev_joystick2_up
ev_joystick2_down
ev_joystick2_button1
ev_joystick2_button2
ev_joystick2_button3
ev_joystick2_button4
ev_joystick2_button5
ev_joystick2_button6
ev_joystick2_button7
ev_joystick2_button8
Для события столкновения, Вы присваиваете идентификатор другого объекта. Наконец, для другого события, Вы можете использовать следующие константы:

ev_outside
ev_boundary
ev_game_start
ev_game_end
ev_room_start
ev_room_end
ev_no_more_lives
ev_no_more_health
ev_animation_end
ev_end_of_path
ev_close_button
ev_user0
ev_user1
ev_user2
ev_user3
ev_user4
ev_user5
ev_user6
ev_user7
ev_user8
ev_user9
ev_user10
ev_user11
ev_user12
ev_user13
ev_user14
ev_user15
Для события шага Вы присваиваете идентификатор, который может использовать следующие константы:

ev_step_normal
ev_step_begin
ev_step_end
event_perform_object(obj,type,numb) Позволяет назначить для текущего объекта событие numb типа type, указанные в объекте obj. События будут исполнены для текущего, а не для указанного объекта obj.
event_user(numb) В других событиях, Вы можете также определить 16 пользовательских событий. numb - число от 0 до 15.
event_inherited() Выполняет унаследованное событие. Это работает только в том случае, если образец объекта имеет родительский объект.

Вы можете получить информацию о текущем событии, используя следующие переменные "только для чтения":

event_type* Тип события, начавшего выполняться.
event_number* Номер события, начавшего выполняться.
event_object* Идентификатор объекта, в котором выполняется текущее событие.
event_action* Идентификатор действия, которое в данный момент выполняется (0 - первое в событии и т.д.).