gamemaker函数中文帮助 联系客服

发布时间 : 星期三 文章gamemaker函数中文帮助更新完毕开始阅读8e04da21dc36a32d7375a417866fb84ae45cc3ea

alarm[0..11] 指定定时器的值。(注意只有在对象的定时器事件包含动作时,定时器才会更新!)

复杂的时间问题可以使用时间轴资源。每个实例都有一个时间轴资源关联。下面的函数是处理时间轴的 :

timeline_index 实例关联时间轴的索引。可以设定为一个特定的时间线然后使用它。设为 -1 时停止使用时间轴。

timeline_position 当前时间轴位置。可以改变它的值来跳过部分内容或是重复部分内容。 timeline_speed 一般来说,时间轴上的位置每步都增加1。可以改变为不同的值。你可以用一个实数比如0.5。如果值比1大,同样的时间步内会发生更多的事件。他们会根据正确的命令允许,所以不会跳过任何动作。 房间

游戏是在房间中运行的。每个房间都有一个索引名。当前房间保存在变量 room 中。你不要将房间想象成连续的。所以不要增加或减少 room 变量的值。而应该使用下面的函数和变量。你可以使用下面一行典型的代码 : {

if (room != room_last) {

room_goto_next(); } else {

game_end(); } }

下面变量和函数用来处理房间 .

room 当前房间的索引。不能通过改变就进入一个不同的房间,要用下面的函数。 room_first* 游戏中第一个房间的索引。 room_last* 游戏中最后一个房间的索引。 room_goto(numb) 进入索引为 numb 的房间。 room_goto_previous() 进入先前的房间。 room_goto_next() 进入下一个房间。 room_restart() 当前房间重新开始。

room_previous(numb) 返回先前房间的索引 numb ( -1 为空),但是不能去那里。 room_next(numb) 返回下一个房间的索引 numb 。 game_end() 结束游戏。

game_restart() 游戏重新开始。

调用下面的函数来改变房间或结束或重新开始游戏时,请认识到房间的改变不会立刻实现。当前的动作全部执行完才开始改变。所以剩下的脚本仍然会执行,同样的应用可能调用脚本。

房间有这些附加属性 :

room_width* 房间的宽度。(单位为像素) room_height* 房间的高度。(单位为像素) room_caption 显示在窗口的房间名。

room_persistent 当前房间是否持久显示。

很多游戏要求玩家保存游戏以及读取游戏。 Game Maker 中 F5 保存游戏 F6 读取游戏。也可以用一行代码保存和读取游戏(注意,读取只在当前步的最后发生)。 game_save(string) 保存游戏为文件名 string 。 game_load(string) 读取文件名为 string 的游戏 。

请认识到,只是最基本的游戏数据被保存。如果播放一段音乐,在音乐的精确位置是不能保存的。同样改变过的资源也不能保存。另外未保存的是数据结构内容,粒子,还有多人设置 。 得分

很多游戏的另一个重要方面是得分,生命值,以及生命。 Game Maker 保留得分为全局变量 score ,生命为全局变量 lives 。生命值和生命同样如此。所有的实例如果生命大于 0 ,并且要小于等于 0 ,没有生命事件( no-more-lives event )就会执行。如果你不想在标题上显示得分和生命,设置 show_score 为 false 。同样也可以改变标题。更复杂的游戏最好自己显示得分 。 score 当前得分。 lives 生命数量。

health 当前生命值( 0-100 )。

show_score 是否在窗口标题中显示得分。 show_lives 是否在窗口标题中显示生命数量。 show_health 是否在窗口标题中显示生命值。 caption_score 用于得分的标题。 caption_lives 用于生命数量的标题。 caption_health 用于生命值得标题 。 产生事件

如你所知, Game Maker 是完全事件驱动的。所有的动作都在事件中发生。有大量不同的事件。创建和销毁事件发生在实例创建或是销毁时。每一步中,系统首先运行闹钟事件。接下来运行键盘和鼠标事件,然后运行并行事件。再然后是碰撞事件,实例碰撞后设置到新的位置。最后绘制事件用来绘制实例(注意有多重视野时绘制事件在每步中调用多次)。你也可以通过代码对当前实例使用事件。下面是可用的函数 :

event_perform(type,numb) 当前实例执行指定类型事件的 numb 号码。有以下事件类型可以指定 :

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 。键盘事件可以使用参数 keycode 。鼠标事件可以使用下面的常量 : 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_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_user0 自定义 0 ev_user1 自定义 1 ev_user2 自定义 2 ev_user3 自定义 3 ev_user4 自定义 4 ev_user5 自定义 5 ev_user6 自定义 6 ev_user7 自定义 7 ev_user8 自定义 8 ev_user9 自定义 9 ev_user10 自定义 10 ev_user11 自定义 11 ev_user12 自定义 12 ev_user13 自定义 13 ev_user14 自定义 14 ev_user15 自定义 15

并行事件中使用以下常量 : ev_step_normal 正常步 ev_step_begin 步开始 ev_step_end 步结束

event_perform_object(obj,type,numb) 这个函数和上面的函数相同除了这次可以指定事件给另一个对象。注意,在这些事件里的动作是当前实例的,不是给对象实例的。

event_user(numb) 在其他事件( other events )中可以定义 16 个用户事件。只有当你调用这个函数是运行。参数 numb 必须在 0 到 15 的范围内。

event_inherited() 执行继承事件。只有实例拥有父对象是才有效 。 使用下面的只读变量可以获取当前事件执行的信息 :

event_type* 当前开始执行的事件类型。 event_number* 当前开始执行的事件号码。 event_object* 当前执行的事件的对象索引。

event_action* 当前执行的事件的动作索引。( 0 为事件中第一个执行的,依次类推) 。 复杂的变量和函数

这里有一些处理出错的变量和函数。

error_occurred 显示是否有错误发生。 error_last 用字符串显示最后出错的信息。

show_debug_message(str) Debug 模式中显示字符串

下面的函数用来监测是否确定变量的存在以及怎样设置变量及获取他们的值。所有这些函数的变量名都是用字符串传递。