2

cocos2d でゲームを書いていますが、ゲームが進むにつれてフレーム レートが低下することに気付きました。漏れをチェックしましたが、問題ないようで、次に何をすべきか途方に暮れています。初歩的な質問で申し訳ありませんが、フレームレート低下の原因は何ですか?

レイヤーからスプライトをクリアすると、問題が悪化するようです。フレームレートが 60 に戻ることもありますが、30 以下に落ちて回復しないこともあります。数分後、アニメーションが著しく遅くなり、ゲームがほとんど停止します。これがcocos2dに固有のものなのか、ゲーム開発の一般的な問題なのかはわかりませんが、ゲームがプレイできなくなります:(

4

4 に答える 4

3

メモリリークをどのようにテストしていますか? 古典的な「メモリリーク動作」のように聞こえるため、絶対に確実になるまで、それを原因として除外する必要はないと思います。

また、ログのようなものや、フレームごとにどんどん大きくなっているメモリ内のものがないことを確認してください (過去に私に起こったことがあるのでそう言います)。

また、ゲームの進行中に新しいオブジェクトやスプライトを継続的にロードしていないことを確認してください。すべてのロード呼び出しをロジックの初期化セグメントに保持してみてください。

于 2009-06-21T03:16:57.877 に答える
1

プリロードされたテクスチャを再利用していますか? そうでない場合は、する必要があります。同じテクスチャを何度もロードすると遅くなり、リークが発生します。

また、使い終わったテクスチャをリリースしていますか? スプライトがなくなっても、テクスチャはまだ残っています。

于 2009-07-01T20:52:04.470 に答える
1

処理するスプライトが増えるため、明らかにスプライトを追加するとフレームレートが低下します。

さて、私はcocos2dについて何も知りませんが、「レイヤーからスプライトをクリアする」と、スプライトが現在非表示になっているという事実を保存するだけでなく、単にビューから非表示にしているように聞こえます.

スプライトの数を減らしてみませんか?

于 2009-06-21T00:17:34.713 に答える