【问题标题】:Access object members from Instance ID从实例 ID 访问对象成员
【发布时间】:2013-05-07 12:06:51
【问题描述】:

我从 collision_line() 获取对象的实例 ID

现在我有了这个实例,我想得到它是 image_angle,但是当我尝试这样做时,我得到了一个 'unknown variable' 消息。

我该怎么办?

【问题讨论】:

    标签: gml game-maker


    【解决方案1】:

    这个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
    }
    

    【讨论】:

    • IMO,以这种方式使用with() 是完全明智的,而不是滥用意外行为。您在找到的任何实例上运行代码 - 如果没有找到,则不运行代码。
    • 我在那个时候发现了解决方案,但感谢您抽出时间回答:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2020-09-10
    • 2014-05-18
    • 2010-09-25
    相关资源
    最近更新 更多