我必须确定 JavaFX (2) 是否是我们即将构建的游戏平台的正确 UI 工具包。游戏是简单的 2D 游戏,没有什么花哨的东西,但对于用户体验来说,游戏看起来“流畅”很重要。
目前,我对一个简单的测试应用程序(在 ImageViews 中移动一些精灵)表现出的帧速率有些担忧。
- 在我的主显示器上运行应用程序时,在我的第二个显示器上使用鼠标执行某些操作时,应用程序的流畅度明显下降。这会持续几秒钟,然后恢复正常。
- 该应用程序在我的第二台显示器上从未达到与在我的主显示器上相同的平滑度。
- 请注意,这是关于人眼可见的帧速率差异。由于某种原因,内部帧速率(由
PerformanceTracker.getAverageFPS()
JavaFX Balls 演示应用程序报告)并没有下降(事实上,报告的数字甚至上升了几帧:通常它运行在 ~128fps 左右,当动画看起来像它口吃报告的fps是〜131)。这是与javafx.animation.fullspeed=true
. - 当我在后台打开 Flash 动画时,JavaFX 应用程序永远不会实现流畅的动画,即使 CPU 没有竞争(我的 CPU 大约使用了 30-40%)。虽然在这种情况下报告的帧速率实际上较低,但如果我的 CPU 甚至没有达到最大值,为什么我的帧速率会受到影响?
有谁知道这种糟糕的表现来自哪里?是平台的不成熟还是一些固有的限制?JavaFX 是否是(简单 2D)游戏平台的糟糕基础,除了使用 OpenGL 加速下降到 C++ 之外,没有其他解决方案吗?