event_perform(type, numb);
参数 | 描述 |
---|---|
type | 要执行的事件类型。如下所示: |
numb | 在必要时指定具体事件的常量或值(否则用0即可)。 |
返回: N/A(无返回值)
对于运行代码的实例,此函数将使用指定的参数执行指定的事件。这里有很多选项可以完全模拟所有可能的事件,但请注意,这只是执行事件中的所有代码,游戏不会修改任何东西以使其手动触发,例如,如果你选择执行键盘按下事件(keyboard press event),将触发事件,但相关键不会被识别为已被按下。或者,如果执行计时器事件(alarm event),计时器计数器将不会设置为 -1,而是继续倒计时。
下表概述了 GameMaker Studio 2 中包含的用于引用事件类型的所有常量,以及它们的数值。事件本身以 粗体文本 标记,并且与 event_type 变量的返回值相同,而它们的数值标记为 斜体文本,这些与 event_number 变量的返回值相同:
名称 | 描述 |
---|---|
ev_create | 创建事件(Create event) |
ev_destroy | 销毁事件(Destroy event) |
ev_cleanup | 清理事件(Clean Up Event) |
ev_step | 步事件(Step event) |
---- ev_step_normal | 步(Step) |
---- ev_step_begin | 步开始(Begin Step) |
---- ev_step_end | 步结束(End Step) |
ev_alarm | 计时器事件(Alarm event) |
---- 0 ... 11 | 你希望触发的 12 个计时器中的哪一个的相关编号 |
ev_keyboard, ev_keypress, ev_keyrelease | 键盘(Keyboard)/ 键盘按下(Keyboard Pressed)/ 键盘放开事件(Keyboard Released) |
---- 任意一个键码 | vk_space 或形如 ord("W")。 |
ev_mouse | 鼠标事件(Mouse event) |
---- 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_gesture | 手势事件(轻敲、拖动、划动、捏合或旋转) |
---- ev_gesture_tap | 已检测到 实例 的单击 / 触摸和释放 |
---- ev_gesture_double_tap | 已检测到 实例 的两次快速触摸 / 单击和释放 |
---- ev_gesture_drag_start | 已为 实例 检测到拖拽手势的开始 |
---- ev_gesture_dragging | 触摸 / 单击已保持并移动 实例 |
---- ev_gesture_drag_end | 已检测到 实例 从拖拽中释放触摸 / 单击 |
---- ev_gesture_flick | 从拖拽中释放触摸 / 单击有足够的移动,可以检测 实例 的轻抚事件 |
---- ev_gesture_pinch_start | 已经为 实例 检测到两次触摸和直线运动 |
---- ev_gesture_pinch_in | 已经检测到 实例 的两次触摸之间的移动 |
---- ev_gesture_pinch_out | 实例 的两次触摸之间的移动已被检测为向外 |
---- ev_gesture_pinch_end | 已经针对 实例 检测到针对捏合的一个(或两个)触摸的释放 |
---- ev_gesture_rotate_start | 已经将 实例 的两次触摸之间的移动检测为旋转 |
---- ev_gesture_rotating | 实例 的两次触摸之间的移动被检测为旋转 |
---- ev_gesture_rotate_end | 已针对 实例 检测到旋转的一个(或两个)触摸的释放 |
---- ev_global_gesture_tap | 在房间内 任何地方 检测到单击 / 触摸和释放 |
---- ev_global_gesture_double_tap | 在房间里 任何地方 检测到两次快速触摸 / 点击和释放 |
---- ev_global_gesture_drag_start | 已经在房间中 任何地方 检测到拖拽手势的开始 |
---- ev_global_gesture_dragging | 保持触摸 / 点击并在房间内 移动 |
---- ev_global_gesture_drag_end | 在房间中已经检测到 任何位置 从拖拽中释放触摸 / 点击 |
---- ev_global_gesture_flick | 从拖动中释放触摸 / 点击有足够的移动,可以在房间的任何地方 检测到轻弹事件 |
---- ev_global_gesture_pinch_start | 在房间里的 任何地方 都检测到两次触摸和直线移动 |
---- ev_global_gesture_pinch_in | 房间内 任何地方 两个触摸之间的移动已被检测为向内 |
---- ev_global_gesture_pinch_out | 房间内 任何地方 两个触摸之间的移动已被检测为向外 |
---- ev_global_gesture_pinch_end | 在房间里 任何地方 检测到一次(或两次)触发释放 |
---- ev_global_gesture_rotate_start | 房间中 任何地方 两个触摸之间的移动被检测为旋转开始 |
---- ev_global_gesture_rotating | 房间中 任何地方 两个触摸之间的移动被检测为旋转 |
---- ev_global_gesture_rotate_end | 房间中 任何地方 两个触摸之间的移动被检测为旋转结束 |
ev_collision | 与物体碰撞 |
---- The index of the object to check. | 例如 object1 |
ev_other | “其他” 下列出的一项行动 |
---- ev_outside | 实例是否在房间外面 |
---- ev_boundary | 实例是否与边界相交 |
---- ev_game_start | 仅在游戏开始时触发 |
---- ev_game_end | 仅在游戏结束时触发 |
---- ev_room_start | 仅在房间开始时触发 |
---- ev_room_end | 仅在房间结束时触发 |
---- ev_no_more_lives | 如果所有生命都耗尽了(如果 lives==0) |
---- ev_no_more_health | 如果所有健康都耗尽了(如果 health==0) |
---- ev_animation_end | 如果物体的精灵已到达其动画的结尾 |
---- ev_end_of_path | 如果物体已到达跟随路径的末尾 |
---- ev_close_button | 如果已按下窗口的 “关闭” 按钮 |
---- ev_user0... ev_user15 | 16 个可用用户事件之一。 |
ev_draw | 绘制事件。 注意: 此事件不能强制在绘制事件之外,常量仅用于在这些情况下执行时识别事件。 |
---- ev_draw_begin | 绘制开始事件(The draw begin event) |
---- ev_draw_end | 绘制结束事件(The draw end event) |
---- ev_draw_pre | 绘制预处理事件(The pre draw event) |
---- ev_draw_post | 绘制后处理事件(The post draw event) |
---- ev_gui | 绘制 GUI 事件(The draw gui event) |
---- ev_gui_begin | 绘制 GUI 开始事件(The draw gui begin event) |
---- ev_gui_end | 绘制 GUI 结束事件(The draw gui end event) |
为了便于理解该函数的用法,请看下面几个样例:
event_perform(ev_keypress, ord("W"));
这将执行与键盘检查按下 “W” 键相关联的事件(不实际生成键盘按压)。
event_perform(ev_step, ev_step_begin);
这将执行 步开始(Begin Step) 事件(如果从任何步事件调用它将导致步开始事件代码运行两次)。
event_perform(ev_create, 0);
这将执行实例的 创建(Create) 事件。