我跟着來自raywnderlich的sample project冒險進入我的第一個cocos2d應用程序。在啓用ARC的cocos2d項目中出現EXC_BAD_ACCESS錯誤?
在該應用程序的移動目標添加像下面
-(void)addMonster
{
__strong CCSprite * monster = [CCSprite spriteWithFile:@"monster.png"];
CGSize winSize=[CCDirector sharedDirector].winSize;
int minY=monster.contentSize.height/2;
int maxY=winSize.height-minY;
int rangY=maxY-minY;
int actualY=(arc4random()%rangY)+minY;
monster.position=ccp(winSize.width+monster.contentSize.width, actualY);
[self addChild:monster];
monster.tag=1;
int minDuration=2.0;
int maxDuration=4.0;
int actualDuration=(arc4random()%(maxDuration-minDuration))+minDuration;
CCMoveTo *actionMove=[CCMoveTo actionWithDuration:actualDuration
position:ccp(-monster.contentSize.width/2, actualY)];
CCCallBlock *actionDone=[CCCallBlock actionWithBlock:^(CCSprite *node){
[node removeFromParentAndCleanup:YES];// crashed at this point
[_monsters removeObject:node];
}];
[monster runAction:[CCSequence actions:actionMove,actionDone,nil]];
[_monsters addObject:monster];
}
我安排從我CCLayerColor子類(場景)的-init方法,上述方法如下面
-(id)init
{
// player adding code
[self schedule:@selector(gameLogic) interval:1.0];
}
-(void)gameLogic
{
[self addMonster];
}
即從左邊移動到ipad屏幕的右端
我的問題是應用程序在訪問節點對象時碰撞到CCCallBlock
我沒有下載源文件,而是計劃從起點複製這些步驟,但仍無法找到它的發佈位置。幫我同行
更新: - 我已經發布的截圖在崩潰
郵棧跟蹤。 – trojanfoe
可能是節點無效,並在此之前釋放...請給出一些更多的代碼和堆棧跟蹤... –
@trojanfoe我已發佈屏幕截圖 –