Понедельник, 11 Ноября 2024, 06:07

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Взаимодействие с экземплярами через сторонний объект
FYgamesДата: Суббота, 10 Июля 2021, 01:00 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте. Возник такой вопрос: при обращении к объекту через его имя, проверяется только один экземпляр.
Например, в комнате находится несколько экземпляров одного объекта object. Надо при помощи другого объекта data вывести id object'a. Пишем в data следующую строку:
draw_text(x, y,object.id);
Но таким образом выводится id только того экземпляра, чей id меньше остальных. Есть ли какой-нибудь встроенный способ взаимодействовать сразу со всеми объектами или всё же придётся сохранять id каждого нужного экземпляра отдельно?

Добавлено (10 Июля 2021, 01:44)
---------------------------------------------
Пока думал над проблемой, вспомнил об

with(object)

Но буду рад увидеть другие версии, ведь использовать with не очень удобно, особенно в условиях.

GWÁLÐДата: Пятница, 24 Декабря 2021, 19:34 | Сообщение # 2
был не раз
Сейчас нет на сайте
with испозовать как раз очень удобно, любые локальные переменные объявленные через var проникают в "область вызова" оператора with.

А также можно:

Код
with(object){
    draw_text(other.x, other.y, id);
}


другой вариант:
Код

var X = x;
var Y = y;
with(object){
  draw_text(X, Y, id)
}

Есть более медленный вариант:
Код

for(var i = 0; i < instance_number(object); i++){
    var obj = instance_find(object, i)
    //что-то делаем с объектом, рисуем например

}


Ты также можешь сделать всё из этого чуточку быстрее, вначале собрать объекты 1 раз в каком-то событии, может обновление по alarm, а затем выводить их из своего массива или ds_list. Или даже ds_map


Сообщение отредактировал GWÁLÐ - Пятница, 24 Декабря 2021, 19:37
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг