2009-04-15 20 views
2

私はさまざまなアプリケーションでcocos2dフレームワークを使用していますが、次の問題が発生しています。私はいくつかのアクションとCallFuncNDを設定しています。アクションの持続時間は設定されています。iPhoneシミュレータで実行すると、予想通りに動作します:遷移時間は私が設定した時間になります。正しい順序で。iPhoneとcocos2d - デバイスで実行中のインターバル動作のタイミング問題

プロビジョニングされたiPhoneでテストすると、すべてが1秒未満で再生されます。正しい順序で、タイミングはアクション間で比例しますが、すべて1秒に圧縮されます。

cocos2dアニメーションがデバイス上で異なる動作をする理由は何ですか?私のコードはすべて、cocos2dエフェクトのデモと似ていますが、スプライトではまだ問題が発生していますが、パーティクルシステムではなくスプライトではないという違いがあります。

答えて

3

シミュレータのコードをテストしても問題はなく、完璧に動作します。しかし、デバイスに移動すると、タイミングはオフに見えます。私は、この違いは、シミュレータがデスクトップCPUとメモリを使用することに起因すると考えています。デバイスが物理的なハードウェアを利用しているため、Cocos2dがどのように処理するのか(フレームごとに「ゲームループ」)いくつかの作業を開始すると、フレームレートが低下し、ココスのミスが発生します。特に、お互いに非常に近いスケジュールがある場合、またはキャンセルするスケジュールが異なるタイミングで再スケジューリングされる場合(0.1以下私はこれに最も踏み込んだところです)。

+0

これは私の最初の考えでしたが、アニメーションが0.1秒間実行されると言うと、ハードウェアに関係なくアニメーションが実行されると理解しました。シミュレータでは0.1秒間実行されますが、iPhoneでは非常に高速です.OpenGLについては、実際にMacBookより遅くなると予想されます。 –

+0

私は問題はiPhoneが実際には遅いという事実にあると考えています。そのため、時間同期が外れているためにアニメーションがより速く再生されるように見えます。アニメーションで更新が呼び出されると、Simulatorで呼び出されたときよりもデルタ時間がはるかに長くなり、アニメーションをより速く完了させることができます。 –

関連する問題