ds_lists如何在gml中起作用?他们是全球性的吗?我是否需要像其他实例中的变量一样访问它们?

时间:2018-11-02 00:02:22

标签: list gml

我有这个代码

obj_Player.x = statePlayerX;
obj_Player.y = statePlayerY;
obj_Player.grv = stateGrav;

for(var i = 0; i < obj_ControlLevel1.platformNumb; ++i)
{
    ds_list_find_value(hList,i).x = ds_list_find_value(statePHX,i);
    ds_list_find_value(hList,i).y = ds_list_find_value(statePHY,i);
    ds_list_find_value(vList,i).x = ds_list_find_value(statePVX,i);
    ds_list_find_value(vList,i).y = ds_list_find_value(statePVY,i);
} // Line 11

with(obj_ControlLevel1) {
usedPlatforms = platformsNumbState;
}

但是,我收到了编译错误,说第11行包含:意外符号“。”表达

以及第11行的内容:格式错误的

对于上下文:此代码将与obj_ControlLevel1放在一个单独的对象中

ds_lists hList和vList保留在另一个对象中,并包含对游戏中对象的引用,这些对象包括列表statePHX,statePHY,statePVX,statePVY

1 个答案:

答案 0 :(得分:0)

我认为第11行是意外的“。”表达式中的此处指的是这一部分:

for(var i = 0; i ; ++ i)

我会尝试这样格式化它:

var platformNumb = obj_ControlLevel1.platformNumb;

for(var i = 0; i < platformNumb; ++i) {
      yourcodehere
}

要在标题中回答您的问题,ds_lists不一定是全局的。您可以将它们的索引分配给一个变量,可以将其制成全局变量,实例变量或局部变量。

list = ds_list_create();
Or
var list = ds_list_create();
Or
globalvar list;
list = ds_list_create();

希望这会有所帮助!