QML类型:粒子影响器类型

Affector

一、描述

Afector 是影响器的基类型,定义了影响器的基本功能。此类型没有特殊的影响效果,可以单纯用来检测粒子是否到达某区域。

二、属性成员

1、acceleration : StochasticDirection

受影响的粒子的加速度。

2、enabled : bool

是否启用影响器。默认值为 true。

3、groups : list<string>

哪些逻辑粒子组会受到影响。如果为空,它将影响所有粒子。

4、once : bool

如果为 true,则此影响器将在每个粒子的生命周期中仅影响一次(粒子第二次进入影响器区域就不受影响了)。如果影响器通常随着时间的推移模拟连续效果,那么它将模拟一秒时间的效果,即它影响粒子的瞬间。默认值为 false。

5、position : StochasticDirection

受影响的粒子相对于 ParticleSystem 的位置。

6、relative : bool

受影响的粒子是否将其现有位置/速度/加速度添加到新粒子中。默认为 true。

7、shape : Shape

可用于影响非矩形区域。

8、system : ParticleSystem

将受元素影响的粒子系统。如果 Affector 是 ParticleSystem 的直接子代,将自动与其关联。

9、velocity : StochasticDirection

受影响的粒子的速度。

10、whenCollidingWith : list<string>

碰撞检测。如果指定了任何逻辑粒子组,则仅当正在检测的粒子与这些组中的粒子相交时才会触发影响器。

这与组属性不同。group 属性选择可以检查哪些粒子,如果它们满足其他标准(如是否在 Affector 的范围内),则将再次测试它们以查看它们是否与来自whenColdingWith 粒子组中的粒子相交。

默认情况下,未指定任何组。

三、信号成员

1、affected(real x, real y)

当粒子选择被影响时发射。x、y是粒子当前的位置。

在Affector没有任何内容时(如Affector{}),这个信号将发送给所有连接它的粒子。允许我们在信号触发时通过 Affector::onAffectParticles 执行任意代码。由于这会为每个粒子执行 JavaScript 代码,因此不建议将此信号与高容量粒子系统一起使用。


Age

一、描述

粒子生命周期影响器允许更改粒子在其生命周期中的位置。常见的用途是过早地使粒子失效。

二、属性成员

1、advancePosition : bool

如果为 false,则位置、速度和加速度将保持不变,只有其他属性会在模拟中前进到粒子生命中该点的正常位置。

如果为 true,位置、速度和加速度也将前进到粒子生命中那个点的正常位置。

2、lifeLeft : int

设置粒子的生命值。粒子进入影响器范围后的剩余生命值。

假设粒子寿命是9000ms,lifeLeft 设置为1500则当粒子进入影响器区域时粒子的寿命变成1500ms。advancePosition 设置为true则粒子会出现在根据预期当粒子寿命为1500ms时应出现的位置。


Attractor

 一、描述

吸引影响器,可将粒子吸引到一个指定的点。

此元素的大小和位置会影响它影响的粒子。所吸引点的大小始终为 0x0,该点的位置由 pointX pointY 属性指定。

Attractor 具有标准的 Item x、y、width 和 height 属性。 像其他影响因素一样,这些代表受影响的区域。它们不代表作为景点目标的 0x0 点。

二、属性成员

1、affectedParameter : AffectableParameter

直接影响粒子的什么属性。

  • Attractor.Position:位置
  • Attractor.Velocity:速度
  • Attractor.Acceleration:加速度

 2、proportionalToDistance : Proportion

从粒子到点的距离如何影响吸引力的强度。

  • Attractor.Constant:常数
  • Attractor.Linear:线性
  • Attractor.InverseLinear:线性反比
  • Attractor.Quadratic:二次方
  • Attractor.InverseQuadratic:逆二次方

Friction

一、描述

用于施加与粒子当前速度成正比的摩擦力。即会按照一定比例降低粒子的速度。

二、属性成员

1、factor : real

比例。

 2、threshold : real

阈值,粒子到达此速度后速度就不会再下降了。


Gravity

一、描述

该元素会为粒子添加一个加速度。

二、属性成员

1、angle : real

加速度角。

2、magnitude : real

对象将被加速的每秒像素数。


GroupGoal

一、描述

此元素用于改变一组粒子的状态。

二、属性成员

1、goalState : string

受影响粒子应移动到的组的名称。

2、jump : bool

如果为 true,受影响的粒子将直接跳到目标组,而不是采用最短的有效路径到达那里。他们也不会完成他们当前的状态,而是立即移动到目标状态的开始。默认为 false。


SpriteGoal

一、描述

用于改变精灵粒子的状态。

二、属性成员

同上。


Turbulence

一、描述

为每个粒子添加一个力向量。每个粒子所获得的力向量都是随机的,力向量可由一张噪音图像决定,noiseSource 属性可以自定义这个噪声图像。strength 属性定义了作用到粒子上面的力向量强度。一旦进入到影响器的范围内,粒子就像发疯一样到处乱穿,而不是原本按照从左向右的方向保持一个大致的轨迹。

二、属性成员

1、noiseSource : url

噪声图像的源图像。它将被缩放到元素的大小。如果没有提供,将使用默认图像。

此图像应该是相对平滑的黑白噪声图像,例如柏林噪声。

2、strength : real

力向量强度。


Wander

一、描述

影响随机粒子轨迹。

二、属性

1、affectedParameter : AffectableParameter

受影响的参数,此影响器直接影响粒子的什么属性。

  • PointAttractor.Position:位置
  • PointAttractor.Velocity:速度
  • PointAttractor.Acceleration:加速度

2、pace : real

每秒最大的属性变化。

3、xVariance : real

     yVariance : real

最大属性 x 值、y值。

相关博文: 粒子系统示例

猜你喜欢

转载自blog.csdn.net/kenfan1647/article/details/121082296