如何在注册命中检测时从阶段中删除对象

时间:2013-11-18 14:58:22

标签: actionscript-3 flash

我正在尝试在我的点击检测已注册时删除屏幕上的对象。下面是我最好的尝试,但它没有工作。

 stage.addEventListener(Event.ENTER_FRAME, detectCollision2);
 function detectCollision2(event:Event)
 {
if (character.hitTestObject(stick))
{
    stick1.visible = false;
    stickVisible = false;
    health--;
    removeChild(stick);
}

我想要做的是添加一个简单的碰撞检测,当我的角色击中棒子实例时,健康状况下降了1.在我的健康状况下降了1之后我想要移除物体棒,因为发生了什么是角色坚持不懈,健康状况不断下降。我只想让健康减少1并停止,我需要帮助,请不要知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

删除theChild the stick后,您可以将stick变量设置为null(stick = null)以删除对该对象的所有引用。 'stick1'和'stickVisible'变量似乎对需求过剩,所以在这个阶段(没有双关语)我建议删除这些行。如果您遇到错误,可能是因为Flash不知道这些变量是什么 此外,在检查碰撞之前,您可能需要检查“棒”是否存在。因此,您的detectCollision2函数应如下所示:

function detectCollision2(event:Event):void {
    if (stick) {
        if (character.hitTestObject(stick)) {
            health--;
            removeChild(stick);
            stick = null;
        }
    }
}