数组函数

还有一些与使用 数组 相关的函数。这些旨在为您提供代码的灵活性,并允许您在制作游戏时创建更多函数和动态的数组。

基本数组函数

高级数组函数

扩展数组函数

回调方法

回调方法与数组一起传递给数组函数,如 array_foreach

GameMaker 在给定数组的每个元素上运行回调方法。对于数组中的每个元素,它将两个参数传递给您的回调方法:

在回调方法中,如果数组函数需要返回值 (如 array_map),则可以使用这些参数来计算返回值。

根据回调方法为每个元素返回的内容,将返回结果值或数组的修改副本。但是,如果您使用的是 _ext 函数之一,则会修改原始数组,而不是复制。

判断方法

当回调方法只需要返回 truefalse 时,它被称为谓词方法。谓词用于告知数组中的元素是否符合条件。

示例:判断

让我们创建一个谓词方法来检查数组中是否包含字符串 "apple"

为此,我们将使用 array_any 函数:

var _array =
[
    "apple",
    "banana",
    "coconut",
    "dragonfruit"
]

var _contains_apple = array_any(_array, function(_val, _ind)
{
    return _val == "apple"
});

show_debug_message(_contains_apple); // prints 1 (true)

我们的判断方法检查 _val=="apple" 并返回结果。当数组的任何一个元素为 true 时,array_any 将返回 true

默认情况下,判断方法在数组内的所有元素上运行,但是大多数高级数组函数还带有两个额外的参数:offsetlength

偏移量和长度

使用 offsetlength 参数,您可以决定希望函数查看数组的哪个部分,以及希望它朝哪个方向前进 (向前或向后)。

如果该函数返回数组的修改版本,则只返回被操作的元素,并按其操作顺序返回。例如,当偏移量为 3,长度为 3 时,元素 3, 4, 5 将被操作并作为新数组返回,其余元素 (如 0, 1, 2, 6, 7, 等等......) 将被销毁。