2D碰撞(返回碰撞侧)

时间:2011-03-21 10:01:45

标签: graphics 2d collision-detection

马里奥参加多场比赛。通常情况下,当他在游戏中玩耍时,当他跳到一个问题区域时,他会获得一个免费的惊喜。当他遇到Goomba或其他危险的流氓时,他只是跳了起来。在进入另一场比赛后,马里奥像往常一样跳到问号框下,发现没有任何反应。马里奥跳上Goomba并死去。马里奥很困惑,这里有什么不对?

这款新游戏具有碰撞检测功能(因此Goomba死亡),但不知道如何判断哪一方与之相撞。假设一方只能碰撞一侧,而且马里奥的左侧只能碰撞物体的右侧(右 ​​- >左;顶部 - >底部;等等)。

我怎样才能进行碰撞测试,同时还会回到可怜的马里奥哪一侧发生碰撞(确保跳到[盒子下面]给他一个惊喜,但跳到一个盒子上并没有给他任何东西)。

伪代码将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您的引擎/游戏没有延迟问题,您可以使用当前速度。

例如:

  • 触摸框:如果垂直速度不是'正面',则没有礼物
  • 触摸敌人:如果垂直速度不是'负面',死亡

我像往常一样在几何体中使用垂直轴,直到屏幕顶部,而不是通常在屏幕空间中,像素从顶部开始,所以向上移动。