0

我想一次初始化整个数组,但我在任何地方都找不到任何这样的例子。

我想做这样的事情:

int a [][] = {{0,1,0},
              {0,1,1},
              {2,1,0}};
4

2 回答 2

0

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

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

这样就可以了。

唯一需要注意的是,这将生成一个数组数组(这是数组在大多数语言中的工作方式),而不是特定于 GML 的遗留二维数组,因此您需要使用一对[index]访问器而不是[index1, index2].

于 2018-05-24T21:11:02.807 回答
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;

关于脚本:这是一维数组的简单脚本。用作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;
于 2018-05-06T16:41:06.300 回答