Amis je suis nouveau à la programmation cocos2d et Mac en général!iphone cocos2d CCSprite EXC_BAD_ACCESS
Je l'ai remarqué cette erreur de EXC_BAD_ACCESS ruinant la plupart de mon temps ... Prenez l'extrait suivant du code de l'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];
}
ici _player est une variable globale et accessible partout, j'appelle AddEnemyAtX: Y:
et passez quelques coordonnées. Mon problème est la première fois que la boucle tourne bien ... Mais encore une fois lorsque le contrôle est passé de animateEnemyFinished
à animateEnemy
alors l'application se bloque en mentionnant "EXC_BAD_ACCESS"! De ce que j'ai compris, la référence de Sprite n'est pas passée correctement! Aidez-moi!
thanx parceval ... C'était mon erreur, en fait j'avais donné le mauvais fragment mélangé ... Ce code était le code modifié que j'avais utilisé pour stocker les sprites dans un tableau afin que le problème de référence que je faisais face puisse être résolu S'il vous plaît trouver l'extrait corrigé et plz la commenter ... – JaVadid
le sélecteur est faux il doit être @selector (animateEnemyFinished :) le côlon est manquant dans votre code, signifie que lorsque l'action de déplacement a terminé une méthode inconnue a été appelé. C'est la raison de l'accident. – parceval
Désolé mec !! encore une erreur typo !! J'ai édité la question maintenant pour représenter l'extrait réel !!! désolé encore mec !!! – JaVadid