276 lines
8.6 KiB
HTML
276 lines
8.6 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
<html>
|
|
<head>
|
|
<title>Generating events</title>
|
|
<link href="style.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
<body background="images/back.gif">
|
|
<!--START-->
|
|
|
|
<h3>Generating events</h3>
|
|
|
|
As you know, <i>Game Maker</i> is completely event driven. All actions
|
|
happen as the result of events. There are a number of different events.
|
|
Creation and destroy events happen when an instance is created or
|
|
destroyed. In each step, the system first handles the begin step events.
|
|
Next it handles the alarm events, keyboard and mouse events and next the step event.
|
|
After this the instances are set to their new positions after which
|
|
the collision event is handled. Finally the end step events are handled after
|
|
which the draw event is used to
|
|
draw the instances (note that when there are multiple views the draw
|
|
event is called multiple times in each step). You can also apply an
|
|
event to the current instance from within a piece of code. The following
|
|
functions exist:
|
|
|
|
<p>
|
|
<blockquote>
|
|
<tt><b>event_perform(type,numb)</b></tt>
|
|
Performs event numb of the indicated type to the current instance.
|
|
The following event types can be indicated:
|
|
<p>
|
|
<blockquote>
|
|
<tt><b>ev_create</b></tt><br>
|
|
<tt><b>ev_destroy</b></tt><br>
|
|
<tt><b>ev_step</b></tt><br>
|
|
<tt><b>ev_alarm</b></tt><br>
|
|
<tt><b>ev_keyboard</b></tt><br>
|
|
<tt><b>ev_mouse</b></tt><br>
|
|
<tt><b>ev_collision</b></tt><br>
|
|
<tt><b>ev_other</b></tt><br>
|
|
<tt><b>ev_draw</b></tt><br>
|
|
<tt><b>ev_keypress</b></tt><br>
|
|
<tt><b>ev_keyrelease</b></tt><br>
|
|
<tt><b>ev_trigger</b></tt><br>
|
|
</blockquote>
|
|
|
|
When there are multiple events of the given type, numb can be used to specify
|
|
the precise event. For the event type <tt>ev_alarm</tt> numb can range from 0 to 11. For the
|
|
<tt>ev_keyboard</tt>, <tt>ev_keypress</tt>. and <tt>ev_keyrelease</tt>
|
|
event types you have to use the keycode for the key. For <tt>ev_mouse</tt> events you
|
|
can use for numb the following constants:
|
|
<p>
|
|
<blockquote>
|
|
<tt><b>ev_left_button</b></tt><br>
|
|
<tt><b>ev_right_button</b></tt><br>
|
|
<tt><b>ev_middle_button</b></tt><br>
|
|
<tt><b>ev_no_button</b></tt><br>
|
|
<tt><b>ev_left_press</b></tt><br>
|
|
<tt><b>ev_right_press</b></tt><br>
|
|
<tt><b>ev_middle_press</b></tt><br>
|
|
<tt><b>ev_left_release</b></tt><br>
|
|
<tt><b>ev_right_release</b></tt><br>
|
|
<tt><b>ev_middle_release</b></tt><br>
|
|
<tt><b>ev_mouse_enter</b></tt><br>
|
|
<tt><b>ev_mouse_leave</b></tt><br>
|
|
<tt><b>ev_mouse_wheel_up</b></tt><br>
|
|
<tt><b>ev_mouse_wheel_down</b></tt><br>
|
|
<tt><b>ev_global_left_button</b></tt><br>
|
|
<tt><b>ev_global_right_button</b></tt><br>
|
|
<tt><b>ev_global_middle_button</b></tt><br>
|
|
<tt><b>ev_global_left_press</b></tt><br>
|
|
<tt><b>ev_global_right_press</b></tt><br>
|
|
<tt><b>ev_global_middle_press</b></tt><br>
|
|
<tt><b>ev_global_left_release</b></tt><br>
|
|
<tt><b>ev_global_right_release</b></tt><br>
|
|
<tt><b>ev_global_middle_release</b></tt><br>
|
|
<tt><b>ev_joystick1_left</b></tt><br>
|
|
<tt><b>ev_joystick1_right</b></tt><br>
|
|
<tt><b>ev_joystick1_up</b></tt><br>
|
|
<tt><b>ev_joystick1_down</b></tt><br>
|
|
<tt><b>ev_joystick1_button1</b></tt><br>
|
|
<tt><b>ev_joystick1_button2</b></tt><br>
|
|
<tt><b>ev_joystick1_button3</b></tt><br>
|
|
<tt><b>ev_joystick1_button4</b></tt><br>
|
|
<tt><b>ev_joystick1_button5</b></tt><br>
|
|
<tt><b>ev_joystick1_button6</b></tt><br>
|
|
<tt><b>ev_joystick1_button7</b></tt><br>
|
|
<tt><b>ev_joystick1_button8</b></tt><br>
|
|
<tt><b>ev_joystick2_left</b></tt><br>
|
|
<tt><b>ev_joystick2_right</b></tt><br>
|
|
<tt><b>ev_joystick2_up</b></tt><br>
|
|
<tt><b>ev_joystick2_down</b></tt><br>
|
|
<tt><b>ev_joystick2_button1</b></tt><br>
|
|
<tt><b>ev_joystick2_button2</b></tt><br>
|
|
<tt><b>ev_joystick2_button3</b></tt><br>
|
|
<tt><b>ev_joystick2_button4</b></tt><br>
|
|
<tt><b>ev_joystick2_button5</b></tt><br>
|
|
<tt><b>ev_joystick2_button6</b></tt><br>
|
|
<tt><b>ev_joystick2_button7</b></tt><br>
|
|
<tt><b>ev_joystick2_button8</b></tt>
|
|
</blockquote>
|
|
For the collision event you give the index of the other object.
|
|
For the event type <tt>ev_other</tt> you can use for numb the following constants:
|
|
<p>
|
|
<blockquote>
|
|
<tt><b>ev_outside</b></tt><br>
|
|
<tt><b>ev_boundary</b></tt><br>
|
|
<tt><b>ev_game_start</b></tt><br>
|
|
<tt><b>ev_game_end</b></tt><br>
|
|
<tt><b>ev_room_start</b></tt><br>
|
|
<tt><b>ev_room_end</b></tt><br>
|
|
<tt><b>ev_no_more_lives</b></tt><br>
|
|
<tt><b>ev_no_more_health</b></tt><br>
|
|
<tt><b>ev_animation_end</b></tt><br>
|
|
<tt><b>ev_end_of_path</b></tt><br>
|
|
<tt><b>ev_close_button</b></tt><br>
|
|
<tt><b>ev_user0</b></tt><br>
|
|
<tt><b>ev_user1</b></tt><br>
|
|
<tt><b>ev_user2</b></tt><br>
|
|
<tt><b>ev_user3</b></tt><br>
|
|
<tt><b>ev_user4</b></tt><br>
|
|
<tt><b>ev_user5</b></tt><br>
|
|
<tt><b>ev_user6</b></tt><br>
|
|
<tt><b>ev_user7</b></tt><br>
|
|
<tt><b>ev_user8</b></tt><br>
|
|
<tt><b>ev_user9</b></tt><br>
|
|
<tt><b>ev_user10</b></tt><br>
|
|
<tt><b>ev_user11</b></tt><br>
|
|
<tt><b>ev_user12</b></tt><br>
|
|
<tt><b>ev_user13</b></tt><br>
|
|
<tt><b>ev_user14</b></tt><br>
|
|
<tt><b>ev_user15</b></tt><br>
|
|
</blockquote>
|
|
For the <tt>ev_step</tt> event type you can use the following constants for numb:
|
|
<p>
|
|
<blockquote>
|
|
<tt><b>ev_step_normal</b></tt><br>
|
|
<tt><b>ev_step_begin</b></tt><br>
|
|
<tt><b>ev_step_end</b></tt><br>
|
|
</blockquote>
|
|
Finally for the <tt>ev_trigger</tt> event type you should use the constants that you can
|
|
specify when defining these events.<br>
|
|
<tt><b>event_perform_object(obj,type,numb)</b></tt>
|
|
This functions works the same as the function above except that this time you can
|
|
specify events in another object. Note that the actions in these events are applied
|
|
to the current instance, not to instances of the given object!<br>
|
|
<tt><b>event_user(numb)</b></tt>
|
|
In the other events you can also define 16 user events. These are only performed if
|
|
you call this function. numb must lie in the range 0 to 15.<br>
|
|
<tt><b>event_inherited()</b></tt>
|
|
Performs the inherited event. This only works if the instance has a parent object.<br>
|
|
</blockquote>
|
|
|
|
<p>
|
|
You can get information about the current event being executed using the
|
|
following read-only variables:
|
|
|
|
<p>
|
|
<blockquote>
|
|
<tt><b>event_type*</b></tt>
|
|
Type of the current event begin executed.<br>
|
|
<tt><b>event_number*</b></tt>
|
|
Number of the current event begin executed.<br>
|
|
<tt><b>event_object*</b></tt>
|
|
The object index for which the current event is being executed.<br>
|
|
<tt><b>event_action*</b></tt>
|
|
The index of the action that is currently being executed (0 is the first in the event, etc.).<br>
|
|
</blockquote>
|
|
|
|
<!--END-->
|
|
</body>
|
|
</html>
|
|
|
|
<!-- KEYWORDS
|
|
events
|
|
generating events
|
|
user-defined events
|
|
|
|
event_perform()
|
|
event_user()
|
|
event_perform_object()
|
|
event_inherited()
|
|
event_type
|
|
event_number
|
|
event_object
|
|
event_action
|
|
ev_create
|
|
ev_destroy
|
|
ev_step
|
|
ev_alarm
|
|
ev_keyboard
|
|
ev_mouse
|
|
ev_collision
|
|
ev_other
|
|
ev_draw
|
|
ev_keypress
|
|
ev_keyrelease
|
|
ev_trigger
|
|
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_animation_end
|
|
ev_end_of_path
|
|
ev_no_more_health
|
|
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
|
|
|
|
--> |