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