gamemaker函数中文帮助 联系客服

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

variable_global_exists(name) 返回值为名为参数 name (字符串)的全局变量是否存在。 variable_local_exists(name) 返回值为当前实例的名为参数 name (字符串)的局部变量是否存在。

variable_global_get(name) 返回值为给出参数 name (字符串)的全局变量的值。 variable_global_array_get(name,ind) 返回值为给出参数 name (字符串)的全局数组的参数 ind 的索引值。

variable_global_array2_get(name,ind1,ind2) 返回值为给出参数 name (字符串)的全局二维数组变量的参数 ind1 , ind2 的索引值。

variable_local_get(name) 返回值为给出参数 name (字符串)的局部变量的值。 variable_local_array_get(name,ind) 返回值为给出参数 name (字符串)的局部数组的参数 ind 的索引值。

variable_local_array2_get(name,ind1,ind2) 返回值为给出参数 name (字符串)的局部二维数组变量的参数 ind1 , ind2 的索引值。

variable_global_set(name,value) 设置给出参数 name (字符串)的全局变量的值。 variable_global_array_set(name,ind,value) 设置给出参数 name (字符串)的全局数组的参数 ind 的索引值。

variable_global_array2_set(name,ind1,ind2,value) 设置给出参数 name (字符串)的全局二维数组变量的参数 ind1 , ind2 的索引值。

variable_local_set(name,value) 设置给出参数 name (字符串)的局部变量的值 variable_local_array_set(name,ind,value) 设置给出参数 name (字符串)的局部数组的参数 ind 的索引值。

variable_local_array2_set(name,ind1,ind2,value) 设置给出参数 name (字符串)的局部二维数组变量的参数 ind1 , ind2 的索引值。 举例来说,你可以这样写 :

{

if variable_global_exists('ammunition') global.ammunition += 1 else

global.ammunition = 0 }

你可以使用这些函数通过一种参数传递的方法给脚本传递变量,通过传递它们的字符名以及使用函数来改变它们

你可以使用下面的函数改变程序的优先级 :

set_program_priority(priority) 设置程序的优先级。可以指定 -3 到 +3 之间的值。值为 -3 时意味着程序只会在如下情况运行,电脑没有其他程序要处理时,或是所有其他的程序都空闲时。值为 -2 或 -1 时在正常线下,其他程序会有优先权。值为 0 时是正常的值。值为 +1 或 +2 为较高的优先级,可能会导致较高的速度和较平滑的游戏流程。但其他程序会得到很少的处理时间。值为 +3 时为实时模式。在实时模式中基本上所有的时间都分配到游戏当中去了。这样会导致电脑正在运行的其他应用程序发生严重的问题。当然键盘事件不

再被电脑记录下来。所以只有当你想要所有的处理时间时才使用这个函数。同样要注意最好使用前仔细的检查一下并且运行前保存游戏 。 键盘

键盘互动中,存在以下几个变量和函数 :

keyboard_lastkey 最后一个按下的按键代码。请看后面的按键代码手册。你可以改变它, 例如设定成0,如果你愿意的话。

keyboard_key 当前按下的按键代码(看后面;如果是0则表示没有按键)。 keyboard_lastchar 最后一个按下的字符(返回字符串格式)。 keyboard_string 返回最后一批被按下的字符,最多1024个。字符串将只包含可打印字符。 有些时候将某个按键映射成另一个按键相当有用。例如,你可能想允许玩家同时使用方向键 和数字小键盘。除了简单复制动作以外,你还可以通过映射小键盘到方向键来完成。或者你 想搞一个控制选项让玩家自己去设置按键。那么以下几个函数就会相当有用 : keyboard_set_map(key1,key2) 映射按键代码 key1 到 key2 。 keyboard_get_map(key) 返回当前 key 的映射代码。

keyboard_unset_map() 重置所有被映射的按键到原始状态。

要检查某个按键或鼠标键是否被按下,你可以使用如下函数。这在需要设置多重按键的时候 会用到。

keyboard_check(key) 返回指定的 key 是否正处于被按下的状态。

keyboard_check_pressed(key) 返回指定的按键 key 是否在上一步之后被按下。 keyboard_check_released(key) 返回指定的按键 key 是否在上一步之后被放开。 keyboard_check_direct(key) 直接通过硬件返回指定按键 key 是否被按下。结果取决于程 序专注的方向,它允许使用更多的按键检查。尤其是它可以检查 vk_lshift,vk_lcontrol, vk_lalt,vk_rshift,vk_rcontrol和vk_ralt这样的按键代码来检测左边或右边的shift, control或alt键被按下。

以下几个函数用来处理键盘的状态 :

keyboard_get_numlock() 返回 numlock 键是否打开。 keyboard_set_numlock(on) 开关 numlock 键。

keyboard_key_press(key) 模拟指定按键 key 的一次按键操作。

keyboard_key_release(key) 模拟指定按键 key 的一次放开键的操作。 以下为一些存在的虚拟按键代码 : vk_nokey 没有按键时的按键代码。

vk_anykey 任意键被按下时的按键代码。 vk_left 左方向键的按键代码。 vk_right 右方向键的按键代码。 vk_up 上方向键的按键代码。

vk_down 下方向键的按键代码。 vk_enter 回车键 vk_escape ESC键 vk_space 空格键 vk_shift Shift键 vk_control Ctrl键 vk_alt Alt键

vk_backspace Backspace键 vk_tab Tab键 vk_home Home 键 vk_end end 键

vk_delete delete 键 vk_insert insert 键 vk_pageup pageup 键

vk_pagedown pagedown 键 vk_pause pause/break 键

vk_printscreen printscreen/sysrq 键 vk_f1 ... vk_f12 功能键 F1 ~ F12

vk_numpad0 ... vk_numpad9 数字小键盘数字键 vk_multiply 数字小键盘乘号 vk_divide 数字小键盘分号 vk_add 数字小键盘加号

vk_subtract 数字小键盘减号 vk_decimal 数字小键盘小数点

至于字母键可以使用类似 ord('A') 这样的格式表示按键代码(要用大写字母)。数字键就 用 ord('5') 这样的格式。以下是在 keyboard_check_direct 里要用到的按键代码 : vk_lshift左shift 键

vk_lcontrol 左 control 键 vk_lalt 左 alt 键

vk_rshift 右 shift 键

vk_rcontrol 右 control 键 vk_ralt 右 alt 键

例如,假设你有一个对象可以通过方向键控制移动,你可以用如下代码实现步行事件 : {

if (keyboard_check(vk_left)) x -= 4; if (keyboard_check(vk_right)) x += 4; if (keyboard_check(vk_up)) y -= 4; if (keyboard_check(vk_down)) y += 4; }

当然在动作库里直接拖放设定更方便一些

这里有一些额外的键盘处理函数。

keyboard_clear(key) 清除按键 key 的状态。这意味着除非它被连发,否则不会产生任何 按键代码事件。

io_clear() 清除所有键盘及鼠标状态。

io_handle() 操作用户 io,更新键盘及鼠标状态。

keyboard_wait() 等待,直到用户按下键盘上的某个键。 鼠标

在鼠标处理中,存在以下几个变量和函数 : mouse_x* 鼠标在房间内的横坐标。无法更改。 mouse_y* 鼠标在房间内的纵坐标。无法更改。

mouse_button 当前按下的鼠标键。可以有如下集中状态: mb_none,mb_any,mb_left, mb_right,以及 mb_middle。

mouse_lastbutton 最后一次按下的鼠标键。

为了检查指定的鼠标键是否被按下,你可以使用如下几个函数。这些函数尤其在多个键按下 时非常有用。

mouse_check_button(numb) 返回某个鼠标键是否被按中(numb 为 mb_none, mb_left, mb_middle, or mb_right 中的一种)。

mouse_check_button_pressed(numb) 返回某个鼠标键在上一次行动后是否被按下(numb 为 mb_none, mb_left, mb_middle, or mb_right 中的一种)。

mouse_check_button_released(numb) 返回某个鼠标键在上一次行动后是否被放开(numb 为 mb_none, mb_left, mb_middle, or mb_right 中的一种)。 这里有一些额外的鼠标处理函数。

mouse_clear(button) 清除鼠标按键 button 的状态,直到玩家将它放开并再次按下。 io_clear() 清除所有键盘及鼠标状态。

io_handle() 管理用户 io,更新键盘及鼠标状态。 mouse_wait() 等待,直到用户按下某个鼠标键。 精灵和图像

每个对象都有一个相关联的精灵。精灵可以是一张图像或是一组连续的图像。对于对象的每 个实例,程序都要在屏幕上绘制对应的图像,在实例的坐标(x,y)原点(这个点在精灵属 性里定义)上。当存在多幅图像的时候,会重复循环显示各个图像,形成动画效果。这里有 一批函数负责处理图像的绘制。他们可以用来改变效果。每个实例含有如下几个变量 :

visible 如果 visible 为真(1),则图像就被绘制出来,否则就不予绘制。不可见的实例 仍然是活动的并可以触发碰撞事件;只是你看不到而已。将 visible 设置为假可以用在例 如手柄对象中(将他们设置为非固态形式以避免碰撞事件)或者隐藏的机关等。

sprite_index 实例的当前精灵索引编号。你可以更改它使实例更换另一个精灵。根据不同 的值你可以设定显示你所指定的不同的精灵。更改精灵并不会更改当前可见的子图像索引编