2012-02-21 9 views
0

私は、「一時停止」と「再開」という言葉が押されたときにトグルするトグルメニューを持っています。これはゲーム全体を一時停止して再開します。これは、再生中にメニューが「一時停止」と表示されることを意味します(一時停止するにはここをクリックします)。一時停止すると「再開」と表示されます(ここをタップすると再開します)。cocos2dのバックグラウンドからゲームを再開した後、一時停止を続ける方法は?

ゲームを一時停止した後にホームボタンをタップしてから戻ってくると、それが再開し、一時停止メニューが「再開」として表示されるという問題があります。そして、これは私には意味をなさない。私が望む最善の方法は、バックグラウンドに入り、バックグラウンドから再開するときに常にゲームを一時停止することです。私は、次の方法を見て、彼らは実際に動作しません:

-(void)applicationWillResignActive:(UIApplication *)application{ 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application{ 
} 

-(void)applicationWillEnterBackground:(UIApplication*)application{ 
} 

-(void)applicationDidEnterBackground:(UIApplication *)application { 
} 

私もちょうど、これらの方法の全てにCCLOGを置くが、何が呼び出されていません。私がこれらのメソッドを使う前に、宣言/宣言する必要があるものはありますか?

申し訳ありませんが、読みには少し時間がかかります。あなたが私を助けてくれることを願います。ありがとうございました。

+0

あなたの質問には、SOユーザーがあなたの質問に答えることを奨励するように、正しいとマークすることを検討する必要があります。 – TigerCoding

+0

http://stackoverflow.com/questions/8538323/how-to-actually-pause-a-cocos2d-scheduled-selector – SHANib

答えて

0

理由はわかりませんが、私の経験(cocos2dではありません)では、これらのメソッドを適用したい場合、追加の実装はありません。

おそらく、これを見てみるべきです。

link 1 & link 2

+0

回答ありがとうございました[link] [1] このリンクは私の問題を解決しました方法の助けをありがとう [1]:http://stackoverflow.com/questions/7214939/resume-game-cocos2d –

0
-(void)applicationWillResignActive:(UIApplication *)application{ 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application{ 
} 

カスタムあなたのcocos2d CCDIRECTORクラスが必要です。そして今、ディスプレイレイヤーを取得します。それをアクティブにするか、機能を一時停止または再開します。これには何らかのプロトコルが必要です。

0

これらのメソッドは、アプリケーションをバックグラウンドで強制的に実行するか、アプリケーションの実行を再開するときに呼び出されます。つまり、外部イベントによってアプリケーションがバックグラウンドに戻るか、またはバックグラウンドから戻ることができます。それらを直接呼び出すべきではありません。リレーションシップを明示的に指定しない限り、あなたのような(ユーザーの再開/一時停止メニューのような)「ユーザー作成の」メニューとの実際の関係はありません。

ので、以下の方法で:後

- (void)applicationWillResignActive:(UIApplication *)application { 
    NSLog(@"<%@>:applicationWillResignActive - received signal, pausing sharedDirector.",[self class]); 

    // here : place your code for forcing your menu in the 'Resume' state 
    // i am assuming some kind of change in a button, and 
    // a state variable of your own that define and control 
    // what it means to be 'paused' from your applications point of 
    // view 

    // then force the director to pause (animations, scheduling, touch, etc ...) 

    [[CCDirector sharedDirector] pause]; 
} 

、実行中のアプリケーションとしてforgroundでアプリケーションを配置することによって、あなたのバックコントロールのiOS手:

- (void)applicationDidBecomeActive:(UIApplication *)application { 
    NSLog(@"<%@>:applicationDidBecomeActive - received signal, resuming sharedDirector.",[self class]); 

    [[CCDirector sharedDirector] resume]; 
} 

あなたは本当にいけないが必要あなたのメニューは「再開」状態であるため、CCDirectorを再起動する以外は何もしないでください。ユーザーがレジュームを押すと、ゲームをもう一度開始し、メニューを「一時停止」状態にします。

+0

oups、あなたの問題を解決したというあなたのコメントを見ました。補足として、あなたは自分自身の答えを受け入れることができるように自分自身に答える答えを受け入れるべきです。この方法では、質問は回答としてマークされ、ちょうど私が行ったようにさらなる答えを引き付けることはありません:) – YvesLeBorg

関連する問題