使用Qt Quick 粒子系统
所有粒子系统类型的文档都可以在QtQuick.Particles 模块页面上找到。
要使用粒子模块中的类型,请用以下一行导入该模块:
import QtQuick.Particles
粒子系统
该粒子系统包含四种主要的 QML 类型:ParticleSystem粒子系统包含四种主要的 QML 类型:、绘制器(Painters)、发射器(Emitters)和效果器(Affectors)。
ParticleSystem 类型将所有其他类型联系在一起,并管理共享时间线。绘制器、发射器和效应器必须具有相同的ParticleSystem ,才能相互影响。
在此限制条件下,您可以拥有任意数量的粒子系统,因此合理的分隔方法是为所有需要交互的类型设置一个ParticleSystem ,如果类型数量较少且易于控制,则只设置一个。
逻辑粒子
所有粒子系统类型都作用于 "逻辑粒子"。每个粒子在粒子系统中都有一个逻辑表示,而这正是这些类型的作用对象。并非每个逻辑粒子都需要可视化,有些逻辑粒子可能会导致在屏幕上绘制多个可视化粒子。
粒子群
每个逻辑粒子都是一个粒子组的成员,每个粒子组都有一个名称。如果没有指定其他组,逻辑粒子就属于名称为""(空字符串)的组,其作用与其他组相同。组有两个用途,一是用于控制粒子,二是用于随机状态转换。
组可以控制粒子,因为使用任何粒子系统类型都无法访问单个粒子。所有类型的粒子都是作为一个整体作用于组,因此任何需要以不同方式表现的粒子(除了通常的随机参数变化外)都需要位于不同的组中。
粒子也可以动态地改变群组。当这种情况发生时,粒子的轨迹不会改变,但会受到不同的粒子绘制器(ParticlePainters)或影响器(Affectors)的影响。粒子的群组可以由影响器改变,也可以在ParticleGroup 类型中定义随机状态转换。
一般来说,只有在需要随机状态转换时,才应在ParticleGroup 中定义群组。否则,只需在类型的粒子/粒子属性中使用字符串定义群组即可。
发射器
发射器向系统发射逻辑粒子。这些粒子有轨迹和寿命,但没有可视化。这些粒子从发射器的位置发射。
轨迹发射器(TrailEmitters)是一种特殊类型的发射器,它从其他逻辑粒子的位置发射粒子。在TrailEmitter 的范围内,任何跟随类型的逻辑粒子都会从它的位置发射粒子,就好像它上面有一个与TrailEmitter 属性相同的发射器一样。
粒子绘制器
粒子绘制器是可视化逻辑粒子的类型。对于分配给它的组中的每个逻辑粒子,在它的边界内(或边界外,如果你没有设置该类型的 clip 属性),它将以取决于ParticlePainter 类型的方式可视化。ParticlePainter 的基本类型不绘制任何东西。ImageParticle 在粒子位置渲染图像。ItemParticle 允许你使用任意的 QML 委托来可视化逻辑粒子。ModelParticle 与之类似,但它以与视图类类似的方式在委托中协调模型数据。
由于ParticlePainter 是将场景中的粒子可视化的 QML 类型,因此当试图将粒子置于其他类型的上方或下方时,它的 Z 值非常重要。
效应器
效应器是粒子系统的可选组件。它们可以对模拟进行各种操作,例如改变粒子的轨迹或提前结束粒子在模拟中的生命。出于性能考虑,建议不要在大容量粒子系统中使用效应器。
随机参数
由于粒子系统受益于对大量实例参数的随机控制,因此粒子系统使用了多种随机辅助类型。如果不希望这些参数出现任何随机变化,则不要指定这些类型中的任何变化。
方向
方向可以通过角度和幅度指定,也可以通过 x 和 y 分量指定。虽然两种方法都可以指定任何方向,但改变 x 和 y 分量与改变角度和幅值有很大区别。改变 x 和 y 的分量会在指定点周围形成一个矩形区域,而改变角度则会以指定点为中心形成一个弧形。
形状
粒子系统包含几种表示形状的类型。这些类型并不能将形状可视化,而是用于在形状中随机选择一个点。如果想要一个没有随机性的特定点,可以使用宽度为 0、高度为 0 的形状(这是默认值)。否则,您可以使用形状类型指定一个区域,这样结果就可以使用从该区域选择的随机点。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.