私はこれに関するいくつかの投稿(例えばこれ)を見ましたが、それでもわかりません。
CCDirectorのpauseメソッドを呼び出すと、アニメーションの間隔が1/4に設定され、値isPaused_がYESに設定されます(以下のコードを参照)。CCDirector.mクラスでは、isPaused_変数はpauseメソッドとresumeメソッド以外ではあまり使用されていないようです。
したがって、stopAnimationメソッドも呼び出すことにしましたが、一部の投稿ではこれについて言及されていません。
[[CCDirector sharedDirector] stopAnimation]
メインシーンに送信される加速度計データと入力データを停止することはないようです。ゲームの開発者は、ユーザーがiPhoneを振ったり、再開ボタンをタップしたりして再開できるようにしたい場合があるので、それは私にはある程度意味があります。これがこの選択の背後にある理由ですか?
また、アニメーション間隔が1/4に設定されているのはなぜですか。また、この値でも移動しないのはなぜですか(加速度計入力を使用して移動するプレーヤーエンティティの一部)。
どうもありがとう!
-(void) pause
{
if( isPaused_ )
return;
oldAnimationInterval_ = animationInterval_;
// when paused, don't consume CPU
[self setAnimationInterval:1/4.0];
[self willChangeValueForKey:@"isPaused"];
isPaused_ = YES;
[self didChangeValueForKey:@"isPaused"];
}