我对这个问题的代码不感兴趣,我只希望得到正确的方向指引。
我正在使用C# XNA。
基本上,对于我的游戏,我正在添加碰撞功能。例如,玩家不能通过石头走或掉落。我有矩形,并且我知道我需要使用.intersects命令来检查碰撞,但是我是否需要根据矩形的哪一面进行碰撞检查呢?
我知道如果玩家正在掉落,我可以在playerRectangle与stoneRectangle相交时让playerY停止下落。
但是如果矩形在玩家的侧面发生碰撞...那就不同了,对吗?
我对这个问题的代码不感兴趣,我只希望得到正确的方向指引。
我正在使用C# XNA。
基本上,对于我的游戏,我正在添加碰撞功能。例如,玩家不能通过石头走或掉落。我有矩形,并且我知道我需要使用.intersects命令来检查碰撞,但是我是否需要根据矩形的哪一面进行碰撞检查呢?
我知道如果玩家正在掉落,我可以在playerRectangle与stoneRectangle相交时让playerY停止下落。
但是如果矩形在玩家的侧面发生碰撞...那就不同了,对吗?
处理这个问题的一个简单方法是找出主要的渗透轴,即玩家在矩形内部是水平方向还是垂直方向。然后,根据此信息将玩家移动,使其仅接触矩形。
例如,玩家撞墙了,在他的右侧。
主轴是水平的,并且他在矩形中心的左侧,因此我们知道要将他向左移动。
在gamedev.stackexchange.com上搜索将给您提供许多不同的碰撞检测/响应选项。