Arrays 如何在GML中一次初始化整个阵列?

Arrays 如何在GML中一次初始化整个阵列?,arrays,initialization,game-maker,gml,game-maker-language,Arrays,Initialization,Game Maker,Gml,Game Maker Language,我想一次初始化整个数组,但在任何地方都找不到这样做的例子 我想这样做: int a [][] = {{0,1,0}, {0,1,1}, {2,1,0}}; 不幸的是,GML不像其他许多语言,因为GML没有单行数组初始化。您可以很容易地编写一个脚本来实现这一点,但是GML文档使用此方法来初始化数组。他们给出的示例用零初始化一个10记录数组(0-9) var i; i = 9; repeat(10) { array[i] = 0;

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

我想这样做:

int a [][] = {{0,1,0},
              {0,1,1},
              {2,1,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(记录1、记录2、记录3、记录4等)

///数组(*args);
var-arr;

对于(var i=0;i,如果您使用的是当前版本的GameMaker,则有
[…items]
()形式的数组文字语法。因此您可以

a = [[0,1,0],
     [0,1,1],
     [2,1,1]];
那就行了

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

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