从实例ID访问对象成员

时间:2013-05-07 12:06:52

标签: gml game-maker

我从collision_line()

获取对象的实例ID

现在我有了这个实例,我希望得到它image_angle,但是当我尝试时,我得到一个'未知变量'消息。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

此collision_line()的是什么? collision_line()函数返回一个实例ID - 但是当找不到任何内容时,它返回noone-4)..所以你必须首先测试它:

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

或者altlly(在GM中更干净),我们可以“滥用”with语句。从给定实例id的角度执行以下所有代码(或者在给定对象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
}