1. 编辑main.qml
import QtQuick
import QtQuick.ParticlesWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")color: "#000000"MouseArea {id: mouseAreaanchors.fill: parentonClicked: {hahaEmitter.pulse(2000)}}ParticleSystem { id: hahaParticleSystem }ImageParticle {system: hahaParticleSystemsource: "qrc:/Resources/Images/ha.png"width: 100height: 100}//! [0]Emitter {id: hahaEmittersystem: hahaParticleSystememitRate: 10lifeSpan: 10000enabled: falsey: mouseArea.mouseYx: mouseArea.mouseXvelocity: PointDirection {x: 0; y: -1;}acceleration: PointDirection {x: 0; y: -10;}size: 50sizeVariation: 25}
}
- QML的粒子系统由四种元素构成:ParticleSystem(系统),Painter(粒子),Emitter(发射器),Affector(附加影响)。本例中只使用了 ParticleSystem, Painter, Emitter。
- ImageParticle是一个Painter,继承自ParticlePainter类型
- Painter,Emitter,Affector需要关联到同一个ParticleSystem上才能其作用。本例中ImageParticle和Emitter通过system属性关联到id为hahaParticleSystem的ParticleSystem上
- 介绍一下本例中Emitter使用到的属性和方法
- emitRate:每秒钟发射的Painter数量
- lifeSpan:Painter存活的毫秒数
- enabled:是否生效。本例中想让emitter在鼠标点击时才生效,因此设置成false
- velocity:Painter初始速度
- acceleration:Painter的加速度
- size:Painter的大小
- sizeVariation:Painter的大小变化范围[size-sizeVariation, size+sizeVariation],本例中Painter大小为25到75之间
- pulse:当enable为false时,让Emitter生效的毫秒数。本例中在鼠标点击时让Emitter生效2秒
2. 运行程序