cocos2d检查碰撞

时间:2011-03-15 07:42:31

标签: iphone xcode cocos2d-iphone collision

我想检查鸟类和鱼类的碰撞。

我有BirdCache,其中包含

-(void) isBirdCollidingWithRect:(CGRect) rect

检查缓存中的每个可见鸟

-(void) update:(ccTime) delta
如果isFishCollidingWithRectYES

,请致电bird.visible = NO来测试每只鸟

FishCache(类似于BirdCache

但结果是鱼在碰撞时永远不会死亡。 (我在两个更新中都设置了visible = NO

我认为首先是bird.visible = NO时问题是比赛条件,然后鱼不会与鸟碰撞。然后我试着schedule:selector(delayedInvisible) interval: 1.0 / 10.0f,但仍然失败了。

这种问题有什么共同的方法吗?

1 个答案:

答案 0 :(得分:0)

所以这样的工作就是这样:

  • 对于每只活鸟,你检查一下 与任何鱼碰撞,如果它 是的,你杀鸟了
  • 为每只活鱼检查它是否与任何鸟类碰撞,如果它 你杀鱼了吗

因此,如果鸟与鱼相撞,只有鸟被杀死。

你必须杀死每个方法中的两个碰撞对象,或者向鸟类和鱼类添加字段(这些动物应该在下一帧被杀死),并将其设置为碰撞,而不是直接设置为可见区域。