如何在矩形的一侧使用与其他边不同的碰撞检测(在ActionScript 3.0中)

时间:2011-06-23 04:17:52

标签: actionscript-3

我一直试图找出如何在矩形的一侧使用碰撞检测,而不是另一侧。例如:马里奥用他的头捣碎盒子,站在盒子下面跳起来。 (我指的是超级马里奥兄弟游戏)。如果马里奥从侧面或顶部击中盒子,任何东西都不会破裂或从盒子里出来。你是如何在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。如何与盒子的一侧碰撞而不是另一侧碰撞。

2 个答案:

答案 0 :(得分:2)

您需要测试以查看Mario的y是否大于矩形边界框的最低点。您可以使用getBounds获取边界框。我相信结果值y +它的高度将是你所寻找的盒子的底部。

答案 1 :(得分:0)

你可以沿着块的底部制作一个薄矩形,并在块上发生碰撞时检测碰撞。