我一直试图找出如何在矩形的一侧使用碰撞检测,而不是另一侧。例如:马里奥用他的头捣碎盒子,站在盒子下面跳起来。 (我指的是超级马里奥兄弟游戏)。如果马里奥从侧面或顶部击中盒子,任何东西都不会破裂或从盒子里出来。你是如何在Actionscript 3.0中做到这一点的。
我使用以下代码来处理具有colllision检测功能的对象。
stage.addEventListener(Event.ENTER_FRAME,hitTest);
function hitTest(evt:Event):void
{
if(object1.hitTestPoint(object2.x,object2.y,true))
{
}
else
{
}
}
让我们说Mario是object2,盒子是object1。如何与盒子的一侧碰撞而不是另一侧碰撞。
答案 0 :(得分:2)
您需要测试以查看Mario的y
是否大于矩形边界框的最低点。您可以使用getBounds获取边界框。我相信结果值y +它的高度将是你所寻找的盒子的底部。
答案 1 :(得分:0)
你可以沿着块的底部制作一个薄矩形,并在块上发生碰撞时检测碰撞。