我对这个问题的代码并不感兴趣,我只想指出正确的方向。
如果有帮助,我会使用C#XNA。
基本上为我的游戏我添加了碰撞,例如玩家不能走路或通过石头坠落..我有矩形,我知道我使用.intersects命令,但我需要检查碰撞取决于侧面这里的矩形?
我知道如果玩家正在下降我可以在playerRectangle与stoneRectangle playerY = stopFalling相交时发出..
但是如果矩形正在玩家的侧面......这会有所不同吗?
答案 0 :(得分:3)
解决这个问题的一个简单方法是计算出穿透的主轴,即玩家是否水平或垂直地进入矩形。然后,使用此信息,您将移动播放器,使他们只是触摸矩形。
即。球员撞到他右边的墙上。
主轴是水平的,他在矩形中心的左边,所以我们知道将他向左移动。
在gamedev.stackexchange.com上搜索将为您提供许多不同的碰撞检测/响应选项。
答案 1 :(得分:3)
如果您的游戏是2D,我建议您使用FarSeer Physics之类的内容,而不是自己实施。
如果您对这些算法感兴趣,那么它是开源的,您可以查看代码,看看它们是如何实现碰撞检测的。