我正在用 JavaFX 编写一个简单的平台游戏。由于我必须使用Platform.runLater()
(用于添加/删除节点),我知道在具有大量对象的大阶段可能出现的性能问题 ->runLater()
每秒调用更多。
什么是最好的性能:在一次Platform.runLater()
调用中将要在 JavaFX 线程中完成的操作分组或在一次迭代中多次调用它?它对性能和 UI 响应能力有多大影响?
例如,如果我在屏幕上有 20 个角色以 2 发子弹/秒的速度发射子弹。这将产生 40 次添加节点的调用,40 次删除节点的调用(击中表面的子弹将消失)和几次其他效果的调用。我如何定义哪种解决方案更好:
1. 每秒调用runLater()
100 次。
2. 每帧分组动作(比如 30 fps)并每秒调用runLater()
30 次。
3. 选择其他解决方案。我正在考虑“节点池”,它将容纳一些在舞台上但不可见的节点。这会将runLater()
调用量降到最低。
问问题
540 次