5

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()これにより、呼び出しの量が最小限に抑えられます。

4

1 に答える 1

0

100%確かではありませんが、誰もが「JavaFx 2 はスレッドを個別に処理できる」と言っています... 私はそれをテストするのに十分な大きさのプログラムを作成したことはありませんが、JavaFx 2 が (アプリケーション) スレッドを作成および削除できると確信しています。より多く/より少なく必要です。

于 2013-10-23T11:54:40.750 に答える