Actionscript 3 注册命中检测时如何从后台移除对象
我试图删除屏幕上的对象时,我的命中检测已注册。下面是我最好的尝试,但没有成功Actionscript 3 注册命中检测时如何从后台移除对象,actionscript-3,flash,Actionscript 3,Flash,我试图删除屏幕上的对象时,我的命中检测已注册。下面是我最好的尝试,但没有成功 stage.addEventListener(Event.ENTER_FRAME, detectCollision2); function detectCollision2(event:Event) { if (character.hitTestObject(stick)) { stick1.visible = false; stickVisible = false; health--;
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并停止,我需要帮助,我不知道该怎么做。在移除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;
}
}
}
谢谢帮助很大,我是actionscript 3.0的新手,所以犯了很多错误:)