【发布时间】:2013-05-07 12:06:51
【问题描述】:
我从 collision_line() 获取对象的实例 ID
现在我有了这个实例,我想得到它是 image_angle,但是当我尝试这样做时,我得到了一个 'unknown variable' 消息。
我该怎么办?
【问题讨论】:
标签: gml game-maker
我从 collision_line() 获取对象的实例 ID
现在我有了这个实例,我想得到它是 image_angle,但是当我尝试这样做时,我得到了一个 'unknown variable' 消息。
我该怎么办?
【问题讨论】:
标签: gml game-maker
这个collision_line()的值是什么? collision_line() 函数返回一个实例 id - 但是当什么都没有找到时它返回 noone (-4).. 所以你必须先测试一下:
var inst, imgangle;
inst = collision_line(...);
if (inst != noone) {
imgangle = inst.image_angle;
//etc etc
}
或者(在 GM 中更干净),我们可以“滥用”with 声明。 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
}
【讨论】:
with() 是完全明智的,而不是滥用意外行为。您在找到的任何实例上运行代码 - 如果没有找到,则不运行代码。