ParticleAffector QML Type

在逻辑粒子生命周期的任何时刻对其属性进行更改。更多

Import Statement: import QtQuick.Particles
Inherited By:

Affector, Age, Attractor, Friction, Gravity, GroupGoal, SpriteGoal, Turbulence, and Wander

属性

信号

详细说明

基本粒子影响器(ParticleAffector)不会改变任何属性,但可以在粒子满足特定条件时发出信号。

如果一个影响器有一个定义的尺寸,那么它将只影响其尺寸和在屏幕上的位置范围内的粒子。

影响器的性能特征与其他粒子系统元素不同。特别是,为了保持实时或更快的模拟速度,它们有一些简化。在运行带有效应器的系统时,如果不规则的帧计时时间过长(每帧 > 一秒),效应器就会试图通过更快但不太精确的模拟来偷工减料。如果系统有多个影响器,则无法保证它们的应用顺序,在模拟较大的时间偏移时,它们将分别模拟整个偏移,这可能导致与较小的时间偏移相比不同的结果。

在某些硬件上可以对具有多个影响因子的大量粒子(数百个)进行精确模拟,但在性能较差的硬件上,由于模拟粒度较低,模拟结果可能会出现小的不规则。

属性文档

enabled : bool

如果启用设置为 false,则该影响器不会影响任何粒子。

通常情况下,该属性用于有条件地打开或关闭一个影响因子。

默认值为 true。


groups : list<string>

将影响哪些逻辑粒子组。

如果为空,它将影响所有粒子。


once : bool

如果 once 设置为 true,则每个粒子在其生命周期中只受一次影响。如果影响因子通常会模拟随时间变化的连续效果,那么它将在影响粒子的瞬间模拟一秒钟的效果。

默认值为假。


shape : Shape

如果定义了尺寸,则可以使用形状属性来影响非矩形区域。


system : ParticleSystem

这是将受元素影响的系统。如果ParticleAffectorParticleSystem 的直接子元素,则会自动与之关联。


whenCollidingWith : list<string>

如果在此指定了任何逻辑粒子群组,那么只有当被检查粒子与这些群组中的某个粒子相交时,才会触发粒子影响器。

这与组属性不同。群组属性选择了可能被检查的粒子,如果这些粒子符合其他条件(包括在ParticleAffector 的范围内,并根据形状进行了修改),那么它们将再次被检测,看是否与 whenCollidingWith 中的某个粒子群组中的粒子相交。

默认情况下,没有指定任何组别。


信号文档

affected(real x, real y)

当粒子被选中并受到影响时,会发出该信号。如果一个粒子被ParticleAffector 考虑,但实际上并未以任何方式改变,则不会发出该信号。

ParticleAffector 没有可能产生影响的特殊情况下(例如ParticleAffector {}),如果您连接到 ,则所有被考虑的粒子都会发出该信号。这样就可以针对粒子执行任意代码(如果要执行影响粒子本身的代码,请使用 ParticleAffector::onAffectParticles 信号处理器)。由于这会执行每个粒子的 JavaScript 代码,因此不建议在大容量粒子系统中使用此信号。

(x,y) 是粒子的当前位置。

注: 相应的处理程序是onAffected


© 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.