# 影响粒子

粒子由发射器发射。 发射粒子后,发射器就无法再更改它。 影响器允许在发射后影响粒子。

每种类型的影响器以不同的方式影响粒子:

  • Age(老化) - 改变粒子在其生命周期中的位置
  • Attractor(吸引器) - 将粒子吸引到特定点
  • Friction(摩擦) - 与当前粒子速度成正比例地降低运动
  • Gravity(重力) - 在一个角度上设定加速度
  • Turbulence(湍流) - 基于噪声图像的类似流体的力
  • Wander(游荡) - 随机改变轨迹
  • GroupGoal(集体目标) - 改变一组粒子的状态
  • SpriteGoal(精灵目标) - 改变一个精灵粒子的状态

# 老化(Age)

允许粒子更快老化(译者注释:不一定都是老化,还可能增加时间)。lifeLeft属性指定了粒子应剩余多少时间。

Age {
    anchors.horizontalCenter: parent.horizontalCenter
    width: 240; height: 120
    system: particleSystem
    advancePosition: true
    lifeLeft: 1200
    once: true
    Tracer {}
}

在示例中,当粒子达到老化影响器时,将其寿命缩(或者变化)成1200毫秒。 由于将advancePosition设置为true,会看到粒子再次出现在粒子正常还剩1200毫秒时出现的某个位置。

译者注释:
这个名称虽然叫做Age(老化),是将剩余时间修改成某个值而已。如果是本来的剩余时间少于这个值得话,也会增加到这个值。
once属性表示影响的次数,这个是继承下来的属性。如果设置为true,表示只影响一次;如果设置成false,默认值,影响器通常会随着时间的推移模拟连续效果,表示它将会影响模拟1秒时间的效果。这里设成false会导致,真的离开老化区域之后,才不会一直将剩余时间重置成某个剩余时间值;在这个区域内会不断重置这个值。
advancePosition属性设置成false表示,虽然变化了剩余时间,但是位置会接着之前的运行;设置成true,粒子会出现在正常运行(原本不经过老化区域)还剩下指定时间的某个位置。

image

# 吸引器(Attractor)

吸引器将粒子吸引到特定点。 该点使用pointXpointY指定,它是相对于吸引器的几何位置。 强度(strength)指定吸引力。 在例子中,让粒子从左到右移动。 吸引器放置在顶部,一半的粒子穿过吸引器,影响器仅影响处于边界框内的粒子,这种拆分使得能够同时看到正常粒子流和受影响的粒子流。

Attractor {
    anchors.horizontalCenter: parent.horizontalCenter
    width: 160; height: 120
    system: particleSystem
    pointX: 0
    pointY: 0
    strength: 1.0
    Tracer {}
}

很容易看出,粒子的上半部分受到吸引到顶部的影响。 吸引力点设置在吸引力为1.0的吸引器的左上角(0/0 点)。
译者注释:这个特定的吸引点确实是在左上角,这个相当于中心点,绕着这个点做圆周运动。虽然在图上看到的是都到了上面的中点,最开始以为是吸引到这个点,但是看着上面的描述是这个类似于万有引力的样子。

image

# 摩擦(Friction)

摩擦影响器将粒子速度减慢为乘以一个系数,直到达到某个阈值(也就是不会低于阈值)。

Friction {
    anchors.horizontalCenter: parent.horizontalCenter
    width: 240; height: 120
    system: particleSystem
    factor : 0.8
    threshold: 25
    Tracer {}
}

在上部摩擦区域,粒子减慢为原来的0.8倍(译者注释:会不断变为刚才的0.8倍,也就是会越来越慢),直到粒子速度达到25像素/秒。 阈值就像一个过滤器,超过阈值速度的粒子被给定的因子减慢。

image

# 重力(Gravity)

重力影响器应用成加速度。 在示例中,使用角度方向将粒子从底部流向顶部。 左侧应用重力效果,右侧不受影响。 重力的角度为90°(向底部方向),大小为50。

Gravity {
    width: 240; height: 240
    system: particleSystem
    magnitude: 50
    angle: 90
    Tracer {}
}

左侧的粒子试图向上爬,但向底部施加的稳定加速度将它们拖向重力方向。

image

# 湍流(Turbulence)

湍流影响器将力矢量的混沌(chaos)图应用于粒子。 混沌图由噪声图像定义,可以使用 noiseSource 属性进行定义。 强度定义了矢量应用于粒子运动的强度。

Turbulence {
    anchors.horizontalCenter: parent.horizontalCenter
    width: 240; height: 120
    system: particleSystem
    strength: 100
    Tracer {}
}

在示例的上部区域,粒子受到湍流的影响。 它们的运动更加不稳定,与原始路径的不规则偏差量由强度定义。

image

# 游荡(Wander)

游荡影响器操纵轨迹。 使用属性affectedParameter可以指定哪个参数(速度、位置或加速度)受到游荡影响器的影响,pace属性指定每秒属性更改的最大值。 xVariance和yVariance指定对粒子轨迹的x和y分量的影响。

Wander {
    anchors.horizontalCenter: parent.horizontalCenter
    width: 240; height: 120
    system: particleSystem
    affectedParameter: Wander.Position
    pace: 200
    yVariance: 240
    Tracer {}
}

在顶部的游荡影响器影响粒子通过随机轨迹变化来回移动。 在上述示例中,位置在y方向上每秒更改200次。

image

最后更新: 12/28/2021, 11:59:19 PM