私はアニメーション付きのゲームを持っています。ゲーム シーンでは、以下の方法を使用してゲームを一時停止します (ユーザーが iOS デバイスの任意の場所をタップするとゲームが一時停止されるため、完全に機能します)。
-(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];
}
上記のメソッドを呼び出す方法のコードは次のとおりです。
CCMenuItemFont* continue_game=[CCMenuItemFont itemWithString:@"continue game" target:self selector:@selector(continueGame:)];
しかし、ゲームを続けるを選択すると、ゲームは空白のポイントから始まります。すべてのゲーム状態、すべてのゲーム キャラクターが新しくなります。ユーザーによって一時停止された最初のポイントからゲームを再開するにはどうすればよいですか? ありがとうございました!