現在、チュートリアルhttp://www.raywenderlich.com/25736/how-to-make-a-simple-iphone-game-with-cocos2d-2-x-tutorialを行っています。忍者スターがモンスターに当たったときに反応する部分に問題があります。私のコードは次のとおりです。
- (void)update:(ccTime)dt {
NSMutableArray *projectilesToDelete = [[NSMutableArray alloc] init];
for (CCSprite *projectile in _projectiles) {
NSMutableArray *monstersToDelete = [[NSMutableArray alloc] init];
for (CCSprite *monster in _monsters) {
if (CGRectIntersectsRect(projectile.boundingBox, monster.boundingBox)) {
[monstersToDelete addObject:monster];
}
}
for (CCSprite *monster in monstersToDelete) {
[_monsters removeObject:monster];
[self removeFromParentAndCleanup:YES];
}
if (monstersToDelete.count > 0) {
[projectilesToDelete addObject:projectile];
}
[monstersToDelete release];
}
for (CCSprite *projectile in projectilesToDelete) {
[_projectiles removeObject:projectile];
[self removeChild:projectile cleanup:YES];
}
[projectilesToDelete release];
}
これは正常に動作し、クラッシュしませんが、発射体でモンスターを攻撃すると、シミュレーターで画面が黒くなります。エラーでも何でもありません。CGRectIntersectRect をログに記録したところ、想定どおりに記録されました。問題は、これが発生すると、すべてが黒くなることです。理由はありますか?