如何使用cocos2d中的警报视图重新启动游戏场景

时间:2009-04-09 19:13:46

标签: cocos2d-iphone

我试图在游戏完成后重新启动相同级别的游戏。我正在使用警报视图在完成时显示。    我在AlertView(End和PlayAgain)中使用了2个按钮。一旦触及结束,它应该结束工作正常。问题是一旦playAgain被触动了    AlertView再次显示,但我需要重新启动游戏。 AlertView按钮索引的代码如下所示。

-(void)alertView :(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
    {
    if(buttonIndex==0){
        exit(0);
        NSLog(@"exit");
    }
    else if(buttonIndex==1){

       // [self retain];
        GameScene *gameScene = [GameScene node];
        [[Director sharedDirector] replaceScene:gameScene];

        NSLog(@"Play Again");
    }
}

我试图再次加载我的gamecene。这是正确的做法。

请帮我解决这个问题。

先谢谢,

3 个答案:

答案 0 :(得分:3)

同样的事情发生在我身上。对我来说,事实证明我有一个每帧发生的调度程序,它会在消息实际出现之前发生两次。我只是用过:

[self unschedule:@selector(aFunction:)];

这个未安排的选择器因此不会注册两次。我希望这可以帮助别人!如果不是这种情况,您可以尝试:

[[CCDirector sharedDirector] pause];

希望暂停场景以阻止它再次呼叫警报。

答案 1 :(得分:0)

据我所知,您的代码加载新(同一场景)没有任何问题。这也是我用来再次切换到同一场景的方法。

您的“else if”语句中的代码是否实际命中?如果在else if块中放置断点会发生什么?

答案 2 :(得分:0)

UR代码完​​全正确但是如果你使用,

[[Director sharedDirector] replaceScene:gameScene];

此代码所以场景是替换你无法返回。如果你想返回使用push和pop这样的话。

[[Director sharedDirector] pushScene:[calssName scene]];