當兩個精靈同時被碰觸時,該應用會崩潰。當同時觸摸兩個精靈時碰撞(cocos2d-iphone)
-(void)addEnemy
{
enemy = [CCSprite spriteWithFile:@"enemy.png"];
enemy.position = ccp(winsize.width/2, winsize.height/2);
[spriteSheet addChild:enemy];
[spritetiles addObject:enemy]; //spritetiles is NSMutableArray
}
觸摸代碼
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint location = [self convertTouchToNodeSpace: touch];
for (CCSprite *target in [spriteSheet children]) {
if (CGRectContainsPoint(target.boundingBox, location)) {
[target stopAllActions];
[spriteSheet removeChild:target cleanup:YES];
[spritetiles removeObject:target];
}
}
}
如果我觸摸精靈中的任何一個,有沒有錯誤,但如果我在觸控小精靈(有時一些精靈的位置就在附近),應用程序會崩潰,在代碼行「if(CGRectContainsPoint(target.boundingBox,location)){」,那麼我該如何解決它?感謝
不顯示你的代碼的一部分,如果你想幫幫我。 ccTouchesBegan中的「location」來自哪裏?addEnemy中的_bomb是什麼? – YvesLeBorg
@YvesLeBorg對不起,我已經更新了代碼,請看看。 – yegomo
hmmm ...小心修改數組([spriteSheet children]),同時迭代它。 – YvesLeBorg