私は、バックグラウンド(2D)にローリング環境があるコンセプトゲームの小さな証明に取り組んできました。私はroadTileと呼ばれるカスタムクラスオブジェクトを持っています。これは基本的に200pxの高さのブロックで、ペイントする画像といくつかの物理演算が含まれています。一度にLinkedList5にタイルを保存しています。すべてを移動し、衝突をチェックするメインループがあります。ループは50msごとに実行されることになっており(タイマーによって制御されます)、最後の実行の長さを測定し、スリープ時間からそれを差し引くことによって、レートを固定します。
これは通常正常に実行され、ループは1ミリ秒未満で実行されますが、プログラムを開始すると、最初の2〜7回後に「チョーク」します。古いタイルを削除し、リストの一番下に新しいタイルを配置しました。add(new roadTile())を呼び出すと、プログラムは20〜400ミリ秒停止します。これは、コンピューター時間の数千年に相当します。これに加えて、動作に一貫性がありません。うまくいくこともあれば、うまくいかないこともあります。
私はこれを排除する方法がかなりわかりません、何か考えはありますか?