0

我在游戏中有 3-4 名玩家和许多物体(如石头、树、仙人掌等)。我必须找到物体和玩家之间的碰撞检测。

用速度性能找到物体和玩家之间的碰撞的最简单方法是什么。

如果我将步进移动的玩家位置传递给对象类以查找碰撞检测,则可能会降低性能(each_step_of_player * all_objects)。

我的另一个想法是,我将为 Object 类中的每个对象编写一个调度函数,并且对于每个调度函数调用,我将检查与所有玩家位置 (Object * all_players) 的碰撞。这个关于速度性能的想法如何?

任何其他想法将不胜感激?

4

1 回答 1

0

您可以使用基于网格的碰撞检测。

将屏幕分成方形单元格,每个单元格至少与最大对象一样大(这很重要)。根据对象中心的位置,每个对象都分配有一个单元格。移动对象时,会将其重新分配给相应的单元格。现在您不必检查一个对象与所有其他对象是否发生碰撞,只需检查其单元格和相邻单元格中的对象即可。

于 2012-08-17T13:24:04.023 回答