Я получаю идентификатор экземпляра объекта от collision_line()
Теперь, когда у меня есть этот экземпляр, я хочу получить его image_angle
, но при попытке сделать это получаю сообщение 'unknown variable'.
Что я должен делать?
Я получаю идентификатор экземпляра объекта от collision_line()
Теперь, когда у меня есть этот экземпляр, я хочу получить его image_angle
, но при попытке сделать это получаю сообщение 'unknown variable'.
Что я должен делать?
каково значение этой коллизии_линии()? Функция collision_line()
возвращает идентификатор экземпляра, однако, когда ничего не найдено, она возвращает noone
(-4
). Итак, сначала вам нужно проверить это:
var inst, imgangle;
inst = collision_line(...);
if (inst != noone) {
imgangle = inst.image_angle;
//etc etc
}
или, альтернативно (более чисто в GM), мы можем «злоупотреблять» оператором with
. With выполняет весь последующий код с точки зрения данного идентификатора экземпляра (или для всех экземпляров определенного объекта, если задан идентификатор объекта).
Однако значение noone
автоматически предотвратит любое выполнение.
var inst, imgangle;
inst = collision_line(...);
with (inst) {
imgangle = image_angle;
//note that we do no longer have to put "inst." before getting a variable
//etc etc
}
with()
таким образом совершенно разумно, а не злоупотребление случайным поведением. Вы запускаете код на любом найденном экземпляре — если ничего не найдено, вы не запускаете код.
- person Medo42; 08.05.2013