使用 Qt Quick 粒子系统

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

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

import QtQuick.Particles

ParticleSystem

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

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

您可以根据约束添加任意数量的 ParticleSystem,因此逻辑分区可以是您想要交互的所有类型的单个 ParticleSystem,或者如果类型数量很少并且易于控制,则只是一个。

逻辑粒子

所有粒子系统类型都针对“逻辑粒子”进行操作。每个粒子在粒子系统内部都有一个逻辑表示,这就是这些类型所针对的内容。并非每个逻辑粒子都需要被可视化,并且某些逻辑粒子可能会在屏幕上绘制多个视觉粒子。

粒子组

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

组控制粒子,因为您永远无法使用任何粒子系统类型访问单个粒子。所有类型都是作为一个整体对组进行操作的,因此任何需要与其他粒子(除了通常的随机参数变化)以不同方式表现的粒子都需要在不同的组中。

粒子还可以动态地更改组。在这种情况下,粒子的轨迹不会改变,但可以被不同的 ParticlePainters 或影响器所作用。粒子要么可以通过影响器更改组,要么可以在 ParticleGroup 类型中定义随机状态转换。

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

发射器

发射器将逻辑粒子发射到系统中。这些粒子具有轨道和寿命,但没有可视化。这些粒子从发射器的位置发射。

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

ParticlePainters

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

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

Affectors

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

随机参数

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

方向

可以通过角度和幅度或 x 和 y 分量指定方向。虽然可以使用任何一种方法来指定任何方向,但改变 x 和 y 分量与改变角度和幅度的差异很大。改变 x 和 y 分量将在指定点周围产生一个矩形区域,而改变角度将导致以指定点为中心的弧。

形状

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

另请参阅 Qt Quick Particles 示例 - 发射器影响者示例图像粒子示例影响者 - 系统示例

© 2024 The Qt Company Ltd. 本文档中包含的贡献内容的版权归各自所有者所有。提供的文档按照自由软件基金会发布的、在GNU自由文档许可证1.3版下授权。Qt 及相关标志是芬兰及/或其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为各自所有者的财产。