친구들 나는 일반적으로 cocos2d 프로그래밍과 Mac을 처음 사용합니다!iphone cocos2d CCSprite EXC_BAD_ACCESS
내가 내 시간의 대부분을 망치고이 EXC_BAD_ACCESS 오류를 발견했습니다 는 ... 내가 AddEnemyAtX: Y:
전화,
-(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 사방 전역 변수와 접근 ... Geek & Dad's tutorial에서 다음 코드 조각을 가지고 좌표를 전달하십시오. 내 문제는 처음 루프가 잘 실행됩니다 ...하지만 컨트롤이 animateEnemyFinished
에서 animateEnemy
으로 전달되면 다시 응용 프로그램이 "EXC_BAD_ACCESS"라는 오류를 발생시킵니다.
내가 알아 낸 것부터 Sprite 참조가 제대로 전달되지 않았습니다! 도움!
thanx parceval ... 그것은 실수였습니다. 실제로 실수가있었습니다. 코드는 수정 된 코드 였으므로 Sprite를 Array에 저장하여 참조 문제가 발생할 수 있습니다. 해결! 코드 조각 정정을 검색하고 PLZ – JaVadid
셀렉터 이 있어야합니다 @selector이 (animateEnemyFinished :) 콜론 코드에없는 을 의미 잘못 ... 그것을 언급하는 이동 작업은 알 수없는 방법을 완료 할 때 라고 불렀다. 그게 그 추락의 이유 야. – parceval
죄송합니다. 다시 오식 오류! 나는 실제 스 니펫을 나타 내기 위해 지금 질문을 편집했다 !!! 다시 미안! – JaVadid