使用Qt Quick粒子系统#

所有粒子系统类型的文档都可以在QtQuick.Particles模块页面找到。

要使用粒子模块中的类型,请使用以下行导入模块

ParticleSystem#

该粒子系统包含四种主要的QML类型:ParticleSystem、画家、发射器和影响器。

ParticleSystem类型将所有其他类型连接在一起,并管理共享的时间线。画家、发射器和影响器都必须具有相同的ParticleSystem才能相互交互。

只要满足此约束条件,您可以有尽可能多的ParticleSystem,因此逻辑分离是对于您想要相互交互的所有类型都有一个ParticleSystem,或者如果类型数量较少且易于控制,则只需一个即可。

逻辑粒子#

所有粒子系统类型都作用于“逻辑粒子”。每个粒子都在粒子系统内部有一个逻辑表示,这是这些类型作用的对象。并非每个逻辑粒子都需要可视化,某些逻辑粒子可能会在屏幕上绘制多个可视粒子。

粒子组#

每个逻辑粒子都是粒子组的成员,且每个组都有一个名称。如果没有指定其他组,则逻辑粒子属于名为“”的组(空字符串),它与其他组的作用相同。组用于两个目的:控制粒子以及因为它们可以具有随机状态转换。

组控制粒子,因为您永远无法使用任何粒子系统类型访问单个粒子。所有类型整体作用于组,因此任何需要彼此行为不同的粒子(除了正常的随机参数变化之外)都必须在不同的组中。

粒子也可以动态更改组。当这种情况发生时,粒子的轨迹不会改变,但它可以由不同的ParticlePainters或Affectors作用。粒子可以通过影响器更改组,或者可以在ParticleGroup类型中定义随机状态转换。

通常,只有当组需要随机状态转换时,才应在ParticleGroup中定义它们。否则,仅使用类型在粒子/粒子属性中使用的字符串简单地定义组就足够了。

发射器#

发射器将从发射器的位置向系统中发射逻辑粒子。这些粒子有轨迹和生存期,但没有可视化。这些粒子是从发射器的位置发射出来的。

尾发射器是一种特殊的发射器,它从其他逻辑粒子的位置发射粒子。在尾发射器的作用范围内,任何该类型的逻辑粒子都会从其位置发射粒子,就像有一个与尾发射器具有相同属性的发射器一样。

粒子绘图器#

绘图器是将逻辑粒子可视化的类型。对于分配给它的组中的每个逻辑粒子,只要它们在其平面内(如果不是,则未设置该类型的裁剪属性),就会根据粒子绘图器的类型进行可视化。基粒子绘图器类型不绘制任何内容。《图像粒子》在粒子位置渲染图像。《项粒子》允许您使用任意QML代理来可视化逻辑粒子。模型粒子类似,但在代理中按类似视图类的方式协调模型数据。

由于粒子绘图器是场景中粒子的一种QML类型,因此在尝试将粒子在视觉效果上放置在其他类型之上或之下时,其Z值很重要。

影响器#

影响器是粒子系统的一个可选组件。它们可以对模拟进行各种操作,例如改变粒子的轨迹或提前结束它们在模拟中的生命周期。出于性能考虑,建议在高体积粒子系统中不要使用影响器。

随机参数#

由于粒子系统从大量实例间对参数的随机控制中受益,因此粒子系统使用了几个随机辅助类型。如果您不希望在参数上出现任何随机变化,则不要指定这些类型的任何变化。

方向#

可以使用角度和幅度或x和y分量来指定方向。虽然可以通过任何一种方法指定任何方向,但在x和y分量与角度和幅度之间有显著的区别。改变x和y分量将在指定点周围形成一个矩形区域,而改变角度将在指定点中心形成一个弧。

形状#

粒子系统包含一些代表形状的类型。这些类型不绘制形状,而是用于在形状内随机选择一个点。如果您需要一个没有随机性的特定点,请使用0宽度和0高度形状(这是默认值)。否则,您可以使用形状类型来指定一个区域,以便结果可以从该区域中使用随机选择的点来使用。