如何在GML中一次初始化整个数组?

时间:2018-05-05 15:27:27

标签: arrays initialization game-maker gml game-maker-language

我想立刻初始化整个数组,但我无法在任何地方找到这方面的任何考试。

我想做这样的事情:

wp

2 个答案:

答案 0 :(得分:0)

不幸的是,GML与GML没有单行数组初始化的意义上的许多其他语言不同。您可以轻松编写脚本来完成此任务,但GML文档使用此方法初始化数组。他们提供的示例用零初始化10记录数组(0-9)。

var i;
i = 9;
repeat(10)
   {
   array[i] = 0;
   i -= 1;
   }

如果您想为每条记录设置不同的值,则必须手动输入每个位置。这是文档给出的示例。

count = 3;
array[count] = "you?"
count -= 1;
array[count] = "are "
count -= 1;
array[count] = "How "
count -= 1;
array[count] = "Hello!"
count -= 1;

关于脚本:这是一个简单的1D数组。用作var myArray = array(record 1, record 2, 3, 4, ...)

///array(*args);
var arr;
for (var i=0;i<argument_count;i+=1)
{
    arr[i] = argument[i];
}
return arr;

答案 1 :(得分:0)

如果您使用的是当前版本的GameMaker,则[...items]documentation)形式的数组文字语法。所以你可以做到

a = [[0,1,0],
     [0,1,1],
     [2,1,1]];

并且该工作正常。

唯一需要注意的是,这将产生一个数组数组(这是数组在大多数语言中的工作方式),而不是GML特定的传统2d数组,所以你需要使用一对[index]个访问者而不是[index1, index2]