0

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

我有一个BirdCache包含

-(void) isBirdCollidingWithRect:(CGRect) rect

检查缓存中每只可见的鸟

-(void) update:(ccTime) delta

它要求isFishCollidingWithRect测试每只鸟,如果YESbird.visible = NO

和一个FishCache(类似于BirdCache

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

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

这类问题有什么通用方法吗?

4

1 回答 1

0

所以这个工作是这样的:

  • 对于每只活的鸟,你检查它是否与任何鱼相撞,如果是,你就杀死这只鸟
  • 对于每条活的鱼,你检查它是否与任何鸟碰撞,如果是,你杀死鱼

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

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

于 2011-03-15T07:50:01.247 回答