翻譯|使用教程|編輯:鮑佳佳|2021-01-07 09:47:12.807|閱讀 183 次
概述:除了動畫之外,我們還使用粒子在游戲畫面上產生運動。我們使用maroon.qml中的ParticleSystem QML類型,使氣泡出現在新的游戲畫面和游戲畫布的底部,并以不同的軌跡慢慢向頂部浮動。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
用Qt編寫GUI的另一種方法是使用QtQuick模塊。使用QtQuick的GUI是用QML編寫的。QML是一種聲明性的對象描述語言,它集成了Javascript進行程序化編程。QtQuick為使用QML開發GUI提供了必要的模塊。可以只用QML編寫整個應用程序,但通常只有GUI是用QML編寫的,應用程序的后臺是用C++實現的(參見整合QML和C++)。
往期推薦:
發射粒子
除了動畫之外,我們還使用粒子在游戲畫面上產生運動。我們使用maroon.qml中的ParticleSystem QML類型,使氣泡出現在新的游戲畫面和游戲畫布的底部,并以不同的軌跡慢慢向頂部浮動。
要使用ParticleSystem類型,我們必須導入Qt Quick Particles QML類型。
import QtQuick.Particles 2.0
為了讓粒子出現在游戲背景上,我們將ParticleSystem類型放在顯示游戲背景的Image類型中。
Image { source:"content/gfx/background.png" anchors.bottom: view.bottom ParticleSystem { id: particles anchors.fill: parent
在ParticleSystem中,我們使用一個Emitter類型,以每秒2個的速度從發射器的位置發射粒子,壽命為15秒。
Emitter { width: parent.width height: 150 anchors.bottom: parent.bottom anchors.bottomMargin: 3 startTime: 15000 emitRate: 2 lifeSpan: 15000 acceleration: PointDirection{ y: -6; xVariation: 2; yVariation: 2 } size: 24 sizeVariation: 16 }
加速度屬性使用PointDirection類型來指定x和y坐標的隨機變化,這樣氣泡就會出現在發射器周圍的一個矩形區域內,這個區域被固定在圖像的底部。
size屬性將粒子開始時的基本尺寸設置為24像素,sizeVariation屬性隨機增加或減少粒子的尺寸,最多增加或減少16個像素,這樣我們就可以得到不同大小的氣泡。
由于發射器沒有可視化,我們使用ImageParticle類型來渲染粒子位置的catch.png圖像。
ImageParticle { id: bubble anchors.fill: parent source: "content/gfx/catch.png" opacity: 0.25 }
Wander類型將隨機軌跡應用于粒子,使氣泡遵循從底部到頂部的隨機路線。
Wander { xVariance: 25; pace: 25; }
關于使用ParticleSystem類型的另一個例子,請參見GameOverScreen.qml文件,在該文件中,ImageParticle類型被用來使云在天空中移動。
Qt常用組件:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: