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