Как функционирует ds_lists в gml? Они глобальные? Нужно ли обращаться к ним как к переменной из других экземпляров? - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть этот код

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 голосов
/ 25 января 2019

Мне кажется, строка 11 неожиданная "." в выражении ссылается на эту часть здесь:

для (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();

Надеюсь, это поможет!

...