使用Qt Quick粒子系统

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

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

粒子系统

这个粒子系统包含四种主要的QML类型:ParticleSystem、绘制器、发射器和影响器。

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

你可以根据需要拥有任意数量的ParticleSystems,只要遵守这个约束条件,所以逻辑上的分离是为所有你想要交互的类型设置一个ParticleSystem,或者如果类型数量较少且易于控制,则只需一个。

逻辑粒子

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

粒子群组

每个逻辑粒子都是一个粒子组的成员,每个组由一个名称标识。如果没有指定其他组,逻辑粒子属于名称为“”(空字符串)的组,该组的行为与任何其他组相同。组用于两个目的,控制粒子和因为它们可以有随机状态转换。

组控制粒子,因为你无法通过任何粒子系统类型访问单个粒子。所有类型都作用于整个组,因此任何需要彼此行为不同的粒子(除了通常的随机参数变化)将需要位于不同的组中。

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

通常,只有在需要随机状态转换时,才应在ParticleGroup中定义组。否则,只需通过类型中的particle/particles属性使用的字符串来定义组就足够了。

发射器

发射器向系统中发射逻辑粒子。这些粒子具有轨迹和寿命,但没有可视化效果。这些粒子从发射器的位置发射出来。

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

粒子绘制器

画家是可视化逻辑粒子的类型。对于分配给它的组中的每个逻辑粒子,如果在其边界内(或外部,如果您未在类型上设置剪辑属性),它将以依赖于ParticlePainter类型的方式进行可视化。ParticlePainter的基本类型不绘制任何内容。ImageParticle在粒子位置渲染图像。ItemParticle允许您使用任意的QML委托来可视化逻辑粒子。ModelParticle类似,但以类似于视图类的方式在委托之间协调模型数据。

由于ParticlePainter是用于在场景中可视化粒子的QML类型,因此在尝试将粒子放置在其他类型的视觉上方或下方时,其Z值非常重要。

影响器

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

随机参数

由于粒子系统受益于大量实例中参数的随机控制,粒子系统使用了多种随机辅助类型。如果您不希望这些参数有任何随机变化,则不要在这些类型中指定任何变化。

方向

方向可以通过角度和大小来指定,或者通过x和y分量来指定。虽然任何方向都可以用这两种方法指定,但改变x和y分量与改变角度和大小之间存在显著差异。改变x和y分量将在指定点周围形成一个矩形区域,而改变角度将在指定点周围形成一个弧形。

形状

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

另请参阅

Qt Quick 粒子示例 - 发射器 示例影响器 示例图像粒子 示例影响器 - 系统