公平2d游戏运动碰撞仲裁

时间:2010-12-06 20:39:33

标签: 2d collision-detection

我正在尝试为2d精灵游戏创建一个'公平'碰撞检测系统,但我发现它比我最初的预期更困难。通过“公平”,我的意思是在单个游戏更新中,没有可移动对象优先于另一个移动对象:

e.g。 A - > 50px< -B(如果b和a具有相同的速度,它们在碰撞和停止之前都应该移动25pix)

与贪婪算法相反,贪婪算法可能只是首先移动A,然后取消B的移动,因为A已经存在。

2个案例很容易处理,但是当我遇到多个对象时,我遇到了问题。

例如(仅显示速度)。

     B
     |
     |<--C 
A--> v

A,B和C对象的大小可以不同

基本上,我正在寻找有关如何解决这个问题的想法。我目前的做法变得过于复杂,我有兴趣讨论一些我认为没有想过的其他方法。

1 个答案:

答案 0 :(得分:1)

如果你正在移动某物然后检查碰撞,正如你所说,这将永远不公平。那么为什么不移动所有,并且在移动实体时,如果发生碰撞,请将其标记为此类。完成所有操作后,您可以查看所有碰撞并根据所有碰撞确定下一步操作(例如,将它们全部移开以便它们不再发生碰撞)。