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值。
相关博文: 粒子系统示例