我浏览了 Qt5 和 Qt Quick 的新特性,并没有真正理解它与图形视图框架 (QGraphicsScene) 特性有何不同。它使用 QML,但除此之外:
- Qt Quick 可以做一些 QGraphicsScene 做不到的事情吗?例如粒子效果。
- Qt Quick 比 QGraphicsScene 快吗?“更快”意味着在显示 1000 个移动元素时更高的 FPS?
我正在制作一个塔防游戏,并且一直在使用 QGraphicsScene,现在我想知道是否应该切换到 Qt Quick。
我浏览了 Qt5 和 Qt Quick 的新特性,并没有真正理解它与图形视图框架 (QGraphicsScene) 特性有何不同。它使用 QML,但除此之外:
我正在制作一个塔防游戏,并且一直在使用 QGraphicsScene,现在我想知道是否应该切换到 Qt Quick。
Qt5 和 Qt Quick 2 应该会提供不错的性能提升,这要归功于“场景图”,它是底层引擎,基本上是从头开始为 Qt5 的 Qt Quick 编写的,以充分利用 OpenGL,并具有高帧率作为设计从一开始的目标。
除了性能之外,我认为它是一个很大的功能,您可以使用 QML 以更好的方式描述 GUI、过渡、动画和所有这些。有一些学习曲线,编写声明性 GUI 代码与编写更直接的 C++ 代码来做类似的事情完全不同,但这是完全值得的。
在 Qt4 中,我认为 QML 不会带来任何性能优势,因为我认为(现在没有验证)它是写在顶级 QGraphicsView 的东西上的。
因此,总结一下:选择 Qt5 和 Qt Quick2,并学习 QML 来设计 GUI。用 C++ 完成游戏逻辑以提高性能(塔防游戏在极端情况下可能会发生很多事情)。
编辑:关于为什么创建场景图实现的博客(旧的所以可能有点过时):http: //blog.qt.io/blog/2011/05/31/qml-scene-graph-in-掌握/