0
我有點新來的cocos2d和objective-c一般都這樣對我很好。我的代碼中有一個EXC_BAD_ACCESS錯誤,所以我做了我通常做的事情,並打開NSZombies。這通常會吐出一些有用的東西,但這次什麼都不吐,程序也沒有崩潰。EXC_BAD_ACCESS在cocos2d中
崩潰而來的更新功能在我的敵人類
- (void)update:(ccTime)delta{
speed = SPEED;
angleToTargetInRadians = -atan2((self.position.y-target.position.y),(self.position.x-target.position.x));
速度第二行期間angleToTargetInRadians是在頭文件中定義兩個雙打。
第4或第5個敵人死亡時發生墜機。
- (void)die {
//give the player some points
[((AppController *)[UIApplication sharedApplication].delegate) addScore:POINTVALUE];
//make the shattered sprite
ShatteredSprite * blownUpShip = [ShatteredSprite shatterWithSprite:self piecesX:4 piecesY:4 speed:3 rotation:.02];
//add it to the layer
[self.parent addChild:blownUpShip];
//set the position and momentum and scale
[blownUpShip setVx: Vx];
[blownUpShip setVy: Vy];
[blownUpShip setScale:self.scale];
[blownUpShip setPosition:self.position];
[blownUpShip setRotation:self.rotation];
//get rid of the old ship
[self removeSelf];
}
- (void)removeSelf {
//remove self from array
NSMutableArray * enemies = [((AppController *)[UIApplication sharedApplication].delegate) Enemies];
[enemies removeObject:self];
[super die];
}
[超級模]只是
[self removeFromParentAndCleanup:FALSE];
任何幫助表示讚賞!謝謝!
任何不調用'[self removeFromParentAndCleanup:YES]的原因;'而不是? – ssantos
@ssantos感謝您的回覆!我剛剛嘗試過,它調用[child setParent:nil]上的另一個不良訪問;在 - (void)detachChild:(CCNode *)子清理:(BOOL)在CCNode.m文件中的doCleanup。 –
ARC還是沒有ARC?你有沒有在Xcode中啓用全局異常斷點(有助於查看實際的違規行)?你應該做清理:是的,因爲這會殺死任何剩餘的行動和敵人的預定選擇器將繼續運行,清理方法也不會被調用。只有一個不清理的原因,那就是當你立即想要重新添加節點到另一個父節點時。 – LearnCocos2D