我在游戏中有3-4个玩家和许多物体(像石头,树,cactus..etc)。我必须找到物体和玩家之间的碰撞检测。
用速度性能来找出物体和玩家之间的碰撞最简单的方法是什么?
如果我将用于步进移动的播放器位置传递给object类以查找碰撞检测,则可能会降低性能(each_step_of_player * all_objects)。
我的另一个想法是,我将为object类中的每个对象编写一个调度函数,并且对于每个调度函数调用,我将检查与所有玩家位置( Object * all_players)的冲突。关于速度性能,这个想法是怎样的?
有没有其他的想法会很受欢迎?
发布于 2012-08-17 21:24:04
可以使用基于栅格的碰撞检测。
将屏幕分成正方形单元格网格,每个单元格至少与最大的对象一样大(这一点很重要)。根据对象的中心所在位置,为每个对象分配一个单元。移动对象时,将其重新指定给相应的单元格。现在,您不必针对所有其他对象检查对象是否存在碰撞,只需针对其单元格和相邻单元格中的对象进行检查。
https://stackoverflow.com/questions/12005929
复制相似问题