运行时函数

函数的一般定义如下:

函数具有输入和输出,输出与输入相关。

GameMaker中,这将转换为两种不同的方式,但它们的工作方式相同:

在上述两种情况下,函数的形式都是函数名称,后面是输入参数 ,中间是括号(),中间用逗号分隔(如果函数没有输入参数,则只使用方括号)。本页面主要关注运行时函数(即:内置到GameMaker中形成GameMaker语言的函数),但下面所示的通用规则适用于所有函数类型。

以下是函数结构的大纲:

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

某些函数可以返回值并可以在表达式 中使用,而其他函数只是执行命令,如以下两个运行时函数示例所示:

// Destroy the calling instance
// This requires no arguments and returns nothing
instance_destroy();

// Get the distance from the current instance position to the mouse position
// This takes four arguments and returns a real value
dist = point_distance(x, y, mouse_x, mouse_y);

注意如果手册中有"N/A"作为函数的返回值,则表示该函数并不意味着在其操作过程中返回任何值。如果您尝试检查这些函数的返回值,则会得到未定义的值

有时,函数的返回值可能是要在赋值中使用的值,但应注意,不可能直接将任何函数用作赋值的左侧。例如,以下用于设置实例速度的代码将给出错误消息:

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

该代码示例中表达式的返回值是实例句柄(即最近实例的唯一ID),因此必须用括号括起来以这种方式使用,并正确地指向所需的实例(详情请参见在其他实例中寻址变量)。上述代码应正确写为:

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

//or more correctly still

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

本手册的语言参考部分列出了所有可用的运行时函数,并举例说明如何使用这些函数,以及它们可能返回的内容或可能触发的任何事件等其他重要信息...有关用户定义的脚本函数和方法的详细信息,请参阅脚本函数一节和方法变量一节。