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