Друзья, я новичок в программировании cocos2d и Mac в целом!
Я заметил, что ошибки EXC_BAD_ACCESS отнимают у меня большую часть времени... Возьмите следующий фрагмент кода из Учебник для компьютерщиков и пап...
-(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»!
Насколько я понял, ссылка на спрайт передается неправильно! Помощь!