0
我有一个动画游戏。在比赛现场,我用下面的方法来暂停我的游戏(它完美的作品,因为比赛暂停时,用户点击了iOS设备的任何一点):在cocos2d中继续游戏循环
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch=[touches anyObject];
CGPoint locationOfTouch=[self convertTouchToNodeSpace: touch];
CGRect rectOfScreen=CGRectMake(0, 0, screenSize.width, screenSize.height);
if (CGRectContainsPoint(rectOfScreen, locationOfTouch))
{
[[CCDirector sharedDirector] replaceScene:[PauseScene scene]];
[self unschedule:@selector(spawnEnemies:)];
[self unschedule:@selector(checkCollisionOfEnemyWithBullet:)];
[self unschedule:@selector(update:)];
[self unschedule:@selector(isJoystickActivated:)];
[self unschedule:@selector(checkHasGameEnded:)];
[[CCDirector sharedDirector] pause];
}
}
为了实现恢复动作,我心中已经创建PauseLayer:CCLayer,在那里我已经实现了下面的方法来恢复比赛:
-(void) continueGame:(id)sender
{
[[CCDirector sharedDirector] resume];
[[CCDirector sharedDirector] replaceScene:[GameSceneLayer scene]];
//[self resumeSchedulerAndActions];
}
下面是代码,我怎么envoke上述方法:
CCMenuItemFont* continue_game=[CCMenuItemFont itemWithString:@"continue game" target:self selector:@selector(continueGame:)];
但是,当我选择继续游戏时,游戏从空白点开始:每个游戏状态,每个游戏角色都将是新的。我如何从用户暂停的初始点恢复我的游戏?谢谢!
我对使用bool变量mIsGamePaused感到困惑。如果我只能使用这些函数,为什么实际上需要这个变量? – 2012-08-19 02:30:10
@TarasMurzenkov,在我的游戏中,我使用了许多单独的课程来解决不同的障碍。所以使用这个布尔变量,我们可以避免执行一些代码,如果游戏s暂停... – Guru 2012-08-19 04:52:29
你可以发布一些代码示例? PS我已经在 - (void)continueGame:(id)发件人中使用了方法[self resumeSchedulerAndActions],但是我的游戏并没有从暂停状态恢复。 – 2012-08-19 08:32:26