1

私は、バックグラウンド(2D)にローリング環境があるコンセプトゲームの小さな証明に取り組んできました。私はroadTileと呼ばれるカスタムクラスオブジェクトを持っています。これは基本的に200pxの高さのブロックで、ペイントする画像といくつかの物理演算が含まれています。一度にLinkedList5にタイルを保存しています。すべてを移動し、衝突をチェックするメインループがあります。ループは50msごとに実行されることになっており(タイマーによって制御されます)、最後の実行の長さを測定し、スリープ時間からそれを差し引くことによって、レートを固定します。

これは通常正常に実行され、ループは1ミリ秒未満で実行されますが、プログラムを開始すると、最初の2〜7回後に「チョーク」します。古いタイルを削除し、リストの一番下に新しいタイルを配置しました。add(new roadTile())を呼び出すと、プログラムは20〜400ミリ秒停止します。これは、コンピューター時間の数千年に相当します。これに加えて、動作に一貫性がありません。うまくいくこともあれば、うまくいかないこともあります。

私はこれを排除する方法がかなりわかりません、何か考えはありますか?

4

1 に答える 1

1

グラフィックの操作を開始する前に、必ずすべてをキャッシュしてください。これが遅延の原因である可能性があります。

于 2012-10-14T11:33:20.630 に答える