2016-05-01 15 views
1

これは本当に基本的な質問かもしれませんが、ユーザーが直面する障害を避ける簡単なゲームを作っています。ホームボタンを押すと、アプリはまだバックグラウンドで実行されています。このため、アプリの音楽は再生され続け、すべてのNSTIMERSが続行され、最終的にはゲームキャラクターが障害に遭遇します)。アプリがバックグラウンド状態のときにゲームを一時停止できない

ホームボタンを押すか、別のアプリに切り替えるとゲームが一時停止するように表示できます(ゲームはバックグラウンド状態です)。その後、アプリがフォアグラウンドに戻ったときに再開しますか?

+1

これを読んで質問を改善してください:http://stackoverflow.com/help/mcve –

+0

正確には間違っていますか? – 1QuickQuestion

+0

@ 1QuickQuestion彼はあなたのコードについてもっと知りたいと思うと思います。とにかく私は答えを残しました、それがあなたを助けることができるかどうかを見てください。 –

答えて

0

それは非常に簡単です...

使用このコード:

[[NSNotificationCenter defaultCenter] addObserver: self 
             selector: @selector(pauseGameSoUserDoesNotDieForNoReason:) 
              name: UIApplicationDidEnterBackgroundNotification 
              object: nil]; 

はあなたのタイマーとメソッドが含まれている.Mファイルのセットアップ方法でそれを入れてください。


同様.mファイルでこれを入れて

-(void)pauseGameSoUserDoesNotDieForNoReason:(NSNotification*)theNotification{ 

} 

この最後の方法:あなたが一時停止コードを置く場所
-(void)pauseGameSoUserDoesNotDieForNoReason:(NSNotification*)theNotification
です。

注:

このコードは複数の.mファイルに置くことができます。

+0

あなたは生命の保護者です!ありがとうございました!私はそれがかなり簡単な解決策だと思った!どうもありがとう! – 1QuickQuestion

1

私はあなたのコードをやっているかわからないが、ユーザがバックグラウンドでアプリを入れたとき、あなたは正確な瞬間を知ってAppDelegate.mにこの方法を使用することができます:内部

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 

    NSLog(@"going to background"); 
} 

あなたの音楽を停止してすべてのNSTIMERSを設定することができます。そして、あなたはこれを使うことができます:

ユーザーがバックグラウンドからフォアグラウンドに戻るときを知ること。

+0

ありがとうございます。これは参考になりましたが、実際にはappDelegateでこれに似たものがあります。私の問題は、 "NSLog(@"バックグラウンド "に行く)でゲームを一時停止するメソッドを呼び出すことです; "NSLog(@"前景から戻る ");"の時点で再開します。 – 1QuickQuestion

+0

ああ私はそれを得た。あなたが答えを受け入れたのを見た。それは素晴らしいです:) –

関連する問題