0

andengine を使用して新しいゲームを構築していますが、何らかの理由で、logcat に次のデバッグ ステートメントが表示され続けます。

01-31 21:29:50.503: I/Choreographer(697): Skipped 152 frames!  The application may be doing too much work on its main thread.

ゲーム中に正確にこのエラーを引き起こしている原因がよくわかりません。多くの衝突をチェックしていますが、ゲーム プレイ シーンが開始されるまで開始されません。

また、Galaxy S3 で、ホーム画面をスワイプして上部のタスク バーをプルダウンすると、ゲームによって携帯電話がちらつくことにも気付きました。

このエラーに何か関係があると思いますが、よくわかりません。皆さんはどう思いますか?

また、ユーザーが別のレベルに移動するたびに、衝突検出器を最初からやり直しました。しかし、開始された最後の衝突を登録解除または停止しません。新しいものが初期化されると、それらは自動的にクリーンアップされると思いました。

皆さんはどう思いますか?

4

1 に答える 1

4

メッセージが伝えていること、つまり、フレーム レートが遅れていることに気付いているようです。あなたのフォローアップの質問「なぜ?」もっと情報がないと答えられないでしょう。あなたはいくつかの可能性を提供しました:それは衝突処理ですか? 不要な衝突の処理ですか?シーンの遷移に何か問題がありますか?答えは、多分です。多分それはそれらのどれかです。多分それは何か他のものです。現時点では、コードを見ていないので推測するしかありません。

しかし、良いニュースは、頼りがないわけではないということです! 必要なことは、コードをテストして、ボトルネックがどこにあるかを見つけることです。開始するのに適した場所は、問題があると思われるコードのブロック間のミリ秒を記録する呼び出しを投入することです。遅いと思っていたことが、実際にはかなり速く起こっていることに気付くかもしれません。逆に、速いと思っていたことが、ゆっくりと起こっていることに気付くかもしれません。後者に注目!そこにさらに電話をかけ、正確に時間がかかっている場所を確認します。コードを見て、そこで実行速度が遅い理由を確認してください。多くのオブジェクトがそこでインスタンス化されていますか? ディスクから読み取っていますか?等。

準備が整ったら、テストをさらに深く掘り下げるための優れたサードパーティ製ツールがいくつかありますが、最初に自分のコードを記録して確認するために時間を費やすことをお勧めします。どこに問題があるのか​​を推測できるのは、作成者としての利点です。調査開始!

補足として、サードパーティのツールへのリンクをいくつか提供しますが、これはジャグジーから書いています。後で更新します。

于 2013-02-02T02:01:03.670 に答える