1

我想知道是否有人可以提出检测多个形状之间碰撞的最佳方法。

我在装有 iOS 4.2 和 Cocos2D 1.0 的 iPad 上使用Chipmunk - 我基本上有一个cpShape在 iPad 屏幕上移动 - 有两段cpShape(以 V 形排列),我想知道我的旅行时间形状正在接触两个段形状(即相应的精灵舒适地坐在 V 内)。

有任何想法吗?我已经使用cpSpaceAddCollisionHandler设置了回调,但我似乎没有列出当前碰撞形状所接触的所有形状的列表。这是可能的还是我必须手动编码和存储信息?

谢谢

4

1 回答 1

0

我认为你将不得不在你的精灵对象中存储一些数据。

当 2 个对象第一次接触然后它们分开时,花栗鼠中有回调。

  • 开始:这一步,两个形状刚刚开始第一次接触。从回调中返回 true 以正常处理碰撞或 false 以使 Chipmunk 完全忽略碰撞。如果您返回 false,则将永远不会运行预求解和后求解回调,但当形状停止重叠时,您仍会收到一个单独的事件。

  • 分离:两个形状刚刚在这一步中第一次停止接触。

你可以让你的对象“坐在 V 中”在 V 的每一侧都有一个 2 个布尔值,当它们“开始”时设为真,当它们分开时设为假。

如果它们都是真的,并且对象是睡眠(停止移动)(我来自 box2d 背景,不确定花栗鼠的等价物是)。

希望有帮助。

于 2011-05-12T14:49:41.727 回答