朋友我是新來的cocos2d編程和一般的Mac!iphone cocos2d CCSprite EXC_BAD_ACCESS
我已經注意到這個錯誤EXC_BAD_ACCESS毀了我大部分的時間...採取從Geek & Dad's tutorial下面的代碼片斷...
-(void) AddEnemyAtX:(int)x Y:(int)y {
CCSprite *enemy1 = [CCSprite spriteWithFile:@"enemy1.png"];
enemy1.position = ccp(x,y);
[self addChild:enemy1];
[self animateEnemy:enemy1];
NSLog(@"%@", enemy1);
}
-(void) animateEnemy:(CCSprite *)enemy {
ccTime actualDuration = .5;
id actionMove = [CCMoveBy actionWithDuration:actualDuration
position:ccpMult(ccpNormalize(ccpSub(_player.position,enemy.position)), 10)];
id actionFinished = [CCCallFunc actionWithTarget:self
selector:@selector(animateEnemyFinished:)];
[enemy runAction:[CCSequence actions:actionMove,actionFinished,nil]];
}
-(void) animateEnemyFinished:(id)sender {
CCSprite *enemy = (CCSprite *)sender;
[self animateEnemy:enemy];
}
這裏_player是一個全局變量和訪問無處不在,我呼籲AddEnemyAtX: Y:
並傳遞一些座標。我的問題是第一次循環運行正常......但再次當控制從animateEnemyFinished
傳遞到animateEnemy
時,那麼應用程序崩潰提到「EXC_BAD_ACCESS」!
從我的想法出發,Sprite引用無法正確傳遞!幫幫我!
thanx parceval ...這是我的錯誤,實際上我給了錯誤的混合片段...該代碼是我用來存儲在一個數組的精靈的修改後的代碼,以便我面對的參考問題可以解決了!! 請找到片段糾正,它PLZ評論... – JaVadid 2010-08-19 07:38:18
的選擇是錯誤的 它必須是@selector(animateEnemyFinished :) 結腸代碼中的丟失,意味着當移動動作完成未知方法被稱爲。這就是事故的原因。 – parceval 2010-08-19 19:52:27
對不起老兄!再次輸入錯誤!我現在編輯了這個問題來代表實際的片段!對不起,兄弟! – JaVadid 2010-08-20 09:38:16