Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d iphone 如何对多个玩家进行多对象碰撞检测_Cocos2d Iphone_Collision Detection - Fatal编程技术网

Cocos2d iphone 如何对多个玩家进行多对象碰撞检测

Cocos2d iphone 如何对多个玩家进行多对象碰撞检测,cocos2d-iphone,collision-detection,Cocos2d Iphone,Collision Detection,我在游戏中有3-4名玩家和许多物品(如石头、树、仙人掌等)。我必须找到物体和玩家之间的碰撞检测 在速度性能方面,找到物体与玩家之间碰撞的最简单方法是什么 如果我将步骤移动的播放器位置传递给对象类以查找碰撞检测,则性能可能会很慢(每个\u播放器的\u步骤*所有\u对象) 我的另一个想法是,我将为对象类中的每个对象编写一个调度函数,对于每个调度函数调用,我将检查与所有玩家位置(对象*所有玩家)的冲突。关于速度性能,这个想法如何 还有其他想法吗 您可以使用基于网格的碰撞检测 把你的屏幕分成正方形的格子

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

在速度性能方面,找到物体与玩家之间碰撞的最简单方法是什么

如果我将步骤移动的播放器位置传递给对象类以查找碰撞检测,则性能可能会很慢(每个\u播放器的\u步骤*所有\u对象)

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


还有其他想法吗

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

把你的屏幕分成正方形的格子,每个格子至少和最大的物体一样大(这很重要)。根据对象的中心位置,为每个对象指定一个单元。移动对象时,将其重新指定给相应的单元。现在,您不必对照所有其他对象检查对象是否发生碰撞,只需对照其单元格和相邻单元格中的对象。

参考“从何处获取更多信息”?我在Keith Peters的“AdvancED ActionScript 3.0动画”中读到了基于网格的检测。