朋友我是新来的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