私は楽しみのために作成している小さなゲームを持っています。数時間コーディングした後、ゲームで多くのことを行っていないにもかかわらず、フレームレートが 120 前後で推移していることに気付きました。ショップアイテムの名前がレンダリングされると、最終的にショップシステムに絞り込みました。コードは次のとおりです。
public void render(Graphics g, Image img, int x, int y) {
img.getScaledCopy(255, 64).draw(x, y);
g.setFont(Fonts.pt32);
g.drawString(name, x + 64 + 8, y);
}
直感で、名前変数をプライベート文字列で静的にしてみましたが、フレームレートは最大 800 まで跳ね上がりました。誰かがなぜこれが起こるのか説明できますか? また、静的に保つことができないため、これを回避する方法が必要です。
編集 気付いたのですが、ゲームの実行中にゲームをリロードすると、フレームレートは通常に戻りますか? 何故ですか?リロードすると、リロード時にリセットするのを忘れていた ArrayList に各要素を追加して、ショップを再作成します。ゲームをリロードすると、すべてのショップ要素が 2 回レンダリングされ、実行速度が速くなります???