JavaFX を使用して単純なプラットフォーマー ゲームを作成しています。Platform.runLater()
(ノードの追加/削除に)使用する必要があるため、多くのオブジェクトを含む大きなステージの場合にパフォーマンスの問題が発生する可能性があることを認識しています-> runLater()
1 秒あたりの呼び出しが増えます。JavaFX スレッドで実行されるアクションを 1 回の呼び出しでグループ化するか、1 回の反復で複数回呼び出すか
、パフォーマンスに最適なものはどれですか? Platform.runLater()
パフォーマンスと UI の応答性にどの程度大きな影響を与えることができますか?
たとえば、画面に 20 人のキャラクターがいて、毎秒 2 発の速度で弾丸を発射するとします。これにより、ノードを追加するための 40 回の呼び出し、ノードを削除するための 40 回の呼び出し (サーフェスに当たった弾丸は消えます)、および他の効果のためのいくつかの呼び出しが生成されます。どちらのソリューションが優れているかを判断するにはどうすればよいですか
。 1. 1runLater()
秒間に 100 回電話をかけます。
2. 各フレーム (たとえば 30 fps) でアクションをグループ化runLater()
し、1 秒間に 30 回呼び出します。
3. 他のソリューションを選択します。ステージ上にあるが見えないノードをある程度保持する「ノードプール」について考えています。runLater()
これにより、呼び出しの量が最小限に抑えられます。