函数


GML 中函数的一般定义如下所示:

函数具有输入和输出,并且输出以某种方式与输入相关。

GameMaker Studio 2 中,你使用函数作为 代码结构 的一部分,以使游戏中发生一些事情,并且有大量的 GML 函数可供使用,所有这些都可以在手册的 语言参考 部分中找到解释。

GML 函数结构是,一个函数名,后面跟着括号之内的输入参数,参数用逗号分隔(如果没有参数,仅仅用括号就可以了)。下面是函数结构的概述:

<function>(<arg0>, <arg1> ,... <arg15>);

基本上有两类函数 - 首先是大量的内置函数,控制游戏的各个方面,其次是你在游戏中定义的 脚本 也可以当作函数使用(但不总是这样)。<br1>

某些函数有返回值,所以可以用在表达式中,而其它的只是简单的运行命令(注意不要将函数用在一个赋值表达式的左边),如以下两个示例:

instance_destroy();                              // 销毁正在调用的实例 - 它不需要参数且没有返回
dist = point_distance(x, y, mouse_x, mouse_y;    // 获取从当前实例位置到鼠标位置的距离 - 接受四个参数并返回实数值

你应该注意,不可能将一个函数单独用在赋值的左侧。例如,下面的代码将会报错:

instance_nearest(x, y, obj).speed = 0;

该代码示例中表达式的返回值是实数(距离最近实例的唯一 ID 值),因此必须将其括在括号中以便以这种方式使用并正确地处理所需的实例(请参阅 访问其他实例中的变量 以获取更多信息)。上述代码正确的写法是:

(instance_nearest(x, y, obj)).speed = 0;
//or
var inst = instance_nearest(x, y, obj);
inst.speed = 0;