我正在构建一个 Cocos2D 游戏,在其中两个特定精灵发生碰撞后(通过简单的边界框技术),我调用
[[CCDirector sharedDirector] replaceScene:gameOverScene];
切换到游戏结束场景。
一旦它使用其中的所有内容初始化游戏结束场景,游戏就会崩溃并在类中转到此方法ccArray.m
:
void ccArrayRemoveAllObjects(ccArray *arr)
{ while( arr->num > 0 )
CC_ARC_RELEASE(arr->arr[--arr->num]);
}
带有消息: 线程 1:程序接收到的信号:“EXC_BAD_ACCESS”。
我尝试使用断点进行调试,发现一旦我的 gameOver 场景被初始化并准备好显示,dealloc
前一个类(游戏类,称为替换场景)中的方法被调用,之后它会抛出此错误。
我的update
方法:
-(void)update:(ccTime)dt
{
if (CGRectIntersectsRect(plane.boundingBox, enemy.boundingBox)) {
CCScene *gameOverScene = [GameOverLayer sceneWithWon:NO];
[[CCDirector sharedDirector] replaceScene:gameOverScene];
} }
我的dealloc
方法:
- (void) dealloc
{
[super dealloc];
[_monsters release];
_monsters = nil;
[mole release];
mole = nil;
[text release];
text = nil;
[mBG1 release];
mBG1 = nil;
[mBG2 release];
mBG2 = nil; }
我不知道为什么会这样。请帮忙。
感谢你在期待。