# 简单模拟
从看一个非常简单的模拟来开始。 Qt Quick让粒子渲染的入门变得非常简单。 为此,需要如下:
- 一个
ParticleSystem
(粒子系统),将所有元素绑定到模拟 - 一个
Emitter
(发射器),将粒子发射到系统中 - 一个
ParticlePainter
(粒子绘制器)的派生元素,用于可视化粒子
import QtQuick
import QtQuick.Particles
Rectangle {
id: root
width: 480; height: 160
color: "#1f1f1f"
ParticleSystem {
id: particleSystem
}
Emitter {
id: emitter
anchors.centerIn: parent
width: 160; height: 80
system: particleSystem
emitRate: 10
lifeSpan: 1000
lifeSpanVariation: 500
size: 16
endSize: 32
Tracer { color: 'green' }
}
ImageParticle {
source: "assets/particle.png"
system: particleSystem
}
}
该示例的结果将如下所示:
将一个80 x 80像素的黑色矩形作为根元素,当成背景。始终要做的第一步是,在根元素中声明了一个ParticleSystem
(粒子系统),系统会将所有其他元素绑定在一起。通常,需要声明的下一个元素是Emitter
(发射器),它根据边界框和基本参数定义发射区域,将它们应用于发射粒子。发射器使用system
属性绑定到系统。
本示例中,发射器在发射器区域每秒发射10个粒子(emitRate: 10
),每个粒子的寿命为1000毫秒(lifeSpan : 1000
),被发射粒子之间的寿命变化为500毫秒(lifeSpanVariation: 500
)。一个粒子的尺寸应为16px (size: 16
),在其生命结束时应为32px (endSize: 32
)。
译者笔记:lifeSpanVariation
是粒子生命长度变化的数字,例如存在lifeSpan : 1000
,lifeSpanVariation: 100
,则粒子的寿命长度范围在[1000 - 100 , 1000 + 100]
。
绿色边框矩形是一个示踪元素,用于显示发射器的几何形状。这可视化了当粒子在发射器边界框内发射时,渲染不限于发射器边界框。渲染位置取决于粒子的寿命和方向。当我们研究如何改变粒子的方向时,这将变得更加清晰。
发射器发射逻辑粒子,使用ParticlePainter
可视化逻辑粒子。在此示例中,使用“ImageParticle
,它将图像URL作为源属性。图像粒子还具有其他几个控制平均粒子外观的属性。
emitRate
(发射率): 每秒发射的粒子数(默认每秒10个)lifeSpan
(生命跨度): 粒子将要持续的时间毫秒数(默认是1000ms)size
(尺寸),endSize
(最终尺寸): 粒子在它们的生命开始和结束时的大小(默认是16px)
更改这些属性可以极大地影响结果
Emitter {
id: emitter
anchors.centerIn: parent
width: 20; height: 20
system: particleSystem
emitRate: 40
lifeSpan: 2000
lifeSpanVariation: 500
size: 64
sizeVariation: 32
Tracer { color: 'green' }
}
除了将发射率增加到40并将寿命增加到2秒外,尺寸从64px开始在结束时减少到32px。
增加endSize
甚至会导致或多或少的白色背景。 另请注意,当粒子仅在发射器定义的区域内发射时,渲染不受发射区域的限制。