删除MovieClip后检测到碰撞

时间:2014-03-20 12:22:54

标签: actionscript-3 flash collision-detection movieclip displayobject

好的,所以让我说我的“球”MovieClip与“墙”MovieClip相撞。

if ( !ball.hitTestObject(wall) ) {
    // If they didn't find any obstacle keep falling.
    ball.y++;
}

然后我拆除了墙壁,球不停地碰到我看不见的墙壁。没有球移动,不是那里的球,也不是新球。

case Keyboard.K: removeChild(wall); break;

我错过了什么或做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

removeChild仅从显示列表中删除实例,显示列表实际上与游戏逻辑无关...你必须用布尔值禁用你的movieclip(如果你以后想要使用它那么你可以启用它)或null引用,但要小心你的引用,因为如果你尝试在归零后访问它,你会收到一个错误,所以你可能想检查一下,如果你的墙是否为null,在检查你的碰撞之前

if(wall!=null){
    if ( !ball.hitTestObject(wall) ) {
        // If they didn't find any obstacle keep falling.
        ball.y++;
    }
}
...
case Keyboard.K:
     removeChild(wall);
     wall = null;
break;