1
我将我的游戏移植到QML,并且有一个困难。看看这张图:如何画线 - 不是在画布上,只是对象?
三角是一个精灵和线力矢量。我可以在QML中显示精灵,但我无法理解如何绘制矢量。它可以有更多的精灵尺寸。
我想我可以使用Rectangle
与height
的1px,但我不知道如何旋转它。
部队可以在每个框架更改,因此绘图性能必须良好。
我将我的游戏移植到QML,并且有一个困难。看看这张图:如何画线 - 不是在画布上,只是对象?
三角是一个精灵和线力矢量。我可以在QML中显示精灵,但我无法理解如何绘制矢量。它可以有更多的精灵尺寸。
我想我可以使用Rectangle
与height
的1px,但我不知道如何旋转它。
部队可以在每个框架更改,因此绘图性能必须良好。
如果你不想使用Canvas
,有几个选项:
实施QQuickPaintedItem
- 它使用QPainter
API做一个QML项目图纸。最简单的解决方案,但如果您进行大量绘图则效率不高。
实现自定义QQuickItem
- 这是比较复杂的,你将不得不实施更多的东西,但它会更快,因为它会使用场景图API,让你的渲染将得到优化
使用Qt3D
模块,虽然它是3D图形,但它也能够2D绘图。
最后,很明显,你可以通过只创建一个非常狭窄,宽Rectangle
画一条线,并给它一些旋转。但这是一个非常笨拙的解决方案。我建议你研究第二个选项,并检查一些例子,用自定义几何和着色器实现QQuickItem
。 Here is one similar example。
QML中的[docs on rotation](http://doc.qt.io/qt-5/qml-qtquick-rotation.html),不知道它的性能是否足够好。 – gatto
看看这个[很好的答案](http://stackoverflow.com/a/31650722/2538363)。 – BaCaRoZzo