2013-05-07 2 views
0

Я получаю идентификатор экземпляра объекта из collision_line()члены объекта Доступ из Instance ID

Теперь, когда у меня есть этот экземпляр, я хочу, чтобы это image_angle, но я получаю «неизвестную переменную» сообщение когда я это пробую.

Что мне делать?

ответ

2

что такое значение этого collision_line()? collision_line() функция возвращает идентификатор экземпляра - однако, когда ничего не будет найден, он возвращает noone (-4) .. Так что вы должны проверить, что первый:

var inst, imgangle; 
inst = collision_line(...); 
if (inst != noone) { 
    imgangle = inst.image_angle; 
    //etc etc 
} 

или alternativelly (более чисто в GM), мы можем «злоупотреблять» заявлением with. С выполнением всего следующего кода с точки зрения данного экземпляра id (или для всех экземпляров определенного объекта при предоставлении идентификатора объекта).
Однако значение 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 
} 
+0

IMO, используя 'with()' таким образом, является вполне разумным и не является злоупотреблением случайным поведением. Вы запускаете код на любом экземпляре, который был найден - если ни один не найден, вы не запускаете код. – Medo42

+0

Я нашел решение в то время, но спасибо, что нашел время ответить :) – CodeMinion

Смежные вопросы