Вопрос, в большей степени к
YellowAfterlifeХотелось бы разобраться с локальными и глобальными переменными.
[24|Ноя 21:03 ]: если переменная становится полу-глобальной для всех объектов типа, то первое задание стоит сделать через this.переменная
Полу-глобальная это как?
На сколько я понял:
- если задается переменная просто (как локальная в ГМ) то она становится глобальной;
- если переменную задавать
this.переменная то она будет локальной для данного объекта.
С обращением к глобальным переменным все понятно, а вот с локальными сложнее.
обращаться к ним
из других объектов нужно так (для изменения переменной у всех экземпляров объектов в комнате):
with (obj_02)
{
переменная += 10;
}
или так (для изменения переменной у всех экземпляров объектов в комнате):
obj_02s = instance_list(obj_02); // получаем массив с всеми объектами нужного типа
for (var i = 0; i < obj_02s.length; i++) { // проходим по ним
obj_02s[i].переменная += 10;
}
или так (для изменения переменной только у первого объекта (с минимальным id), как в ГМ при выполнении
объект.переменная +=10;):
obj_02s = instance_list(obj_02); // получаем массив с всеми объектами нужного типа
obj_02s[0].переменная += 10;
}
Из последнего вытекает еще один вопрос:
instance_list() возвращает массив отсортированный по id или вразброс?
Если я выше написал что-то не правильно прошу указать на это.
И теперь главный вопрос: Будет ли более простое обращение к локальным переменным из другого объекта как в ГМ, т.к. просто
Объект.переменная, без создания массива и без with (или может быть уже есть, просто я об этом не знаю)?