【问题标题】:Fair 2d game movement collision arbitration公平的 2d 游戏运动碰撞仲裁
【发布时间】:2010-12-06 20:39:33
【问题描述】:

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

例如 A--> 50px

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

2 种情况很容易处理,但是当我有多个对象碰撞时遇到了问题。

例如(仅显示速度)。

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

其中 A、B 和 C 对象的大小都可以不同

基本上,我正在寻找有关如何解决此问题的想法。我目前的方法变得太复杂了,我有兴趣讨论一些我没有想到的其他方法。

【问题讨论】:

标签: 2d collision-detection


【解决方案1】:

如您所说,如果您在移动某物然后检查是否发生碰撞,那将永远不公平。那么为什么不移动所有东西呢?在移动实体的同时,如果发生碰撞,将其标记为这样。移动完所有内容后,您可以查看所有碰撞并根据所有碰撞决定下一步要做什么(例如,将它们全部均匀移开,以便它们不再碰撞)。

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多