碰撞取决于矩形的一侧?

时间:2011-12-09 20:40:01

标签: c# xna collision-detection

我对这个问题的代码并不感兴趣,我只想指出正确的方向。

如果有帮助,我会使用C#XNA。

基本上为我的游戏我添加了碰撞,例如玩家不能走路或通过石头坠落..我有矩形,我知道我使用.intersects命令,但我需要检查碰撞取决于侧面这里的矩形?

我知道如果玩家正在下降我可以在playerRectangle与stoneRectangle playerY = stopFalling相交时发出..

但是如果矩形正在玩家的侧面......这会有所不同吗?

2 个答案:

答案 0 :(得分:3)

解决这个问题的一个简单方法是计算出穿透的主轴,即玩家是否水平或垂直地进入矩形。然后,使用此信息,您将移动播放器,使他们只是触摸矩形。

即。球员撞到他右边的墙上。

主轴是水平的,他在矩形中心的左边,所以我们知道将他向左移动。


gamedev.stackexchange.com上搜索将为您提供许多不同的碰撞检测/响应选项。

答案 1 :(得分:3)

如果您的游戏是2D,我建议您使用FarSeer Physics之类的内容,而不是自己实施。

如果您对这些算法感兴趣,那么它是开源的,您可以查看代码,看看它们是如何实现碰撞检测的。