粒子模拟(五-粒子控制)

粒子由粒子发射器发出。在粒子发射出后,发射器无法再改变粒子。
粒子控制器允许你控制发射后的粒子参数。
控制器的每个类型使用不同的方法来影响粒子:

  • 生命周期(Age)- 修改粒子的生命周期
  • 吸引(Attractor)- 吸引粒子朝向指定点
  • 摩擦(Friction)- 按当前粒子速度成正比减慢运动
  • 重力(Gravity)- 设置一个角度的加速度
  • 紊流(Turbulence)- 强制基于噪声图像方式的流动
  • 漂移(Wander)- 随机变化的轨迹
  • 组目标(GroupGoal)- 改变一组粒子群的状态
  • 子粒子(SpriteGoal)- 改变一个子粒子的状态

接下来我们挨个问候:)

Age(生命周期)

            Age {
                // 指定 Age 区域
                anchors.horizontalCenter: parent.horizontalCenter
                // 指定 Age 大小
                width: 240; height: 120
                system: particleSystem
                
                // advancePosition为true,当粒子的生命周期到达1200 毫秒后,
                // 将会再一次在这个位置看到粒子出现
                advancePosition: true
                // 生命周期
                lifeLeft: 1200
                once: true
                Tracer {}
            }

1,Age是个区域

2,进入Age区域的粒子生命周期会变为 1200 毫秒(因为早已超过,所以显示为消失)

3,advancePosition允许再出现!

Attractor(吸引)

            Attractor { 
                anchors.horizontalCenter: 
                    parent.horizontalCenter 
                width: 160
                height: 120 
                system: particleSystem 
                // 朝着区域内的哪一点吸引
                // 这里是矩形控制区域的左上角的点
                pointX: 0 
                pointY: 0 
                // 吸引的强度
                strength: 1.0 
                Tracer {} 
            }

1,pointX、pointY指定朝着控制区域内的哪一点吸引
2,指定吸引强度

Friction(摩擦)

摩擦控制器使用一个参数(factor)减慢粒子运动,直到达到一个阈值

            Friction { 
                anchors.horizontalCenter: 
                    parent.horizontalCenter 
                width: 240
                height: 120 
                system: particleSystem 
                // 粒子按照 0.8 的参数减慢
                factor : 0.8 
                // 减慢到每秒 25 像素之后就不减慢了
                threshold: 25 
                Tracer {} 
            }

在上部的摩擦区域,粒子被按照0.8的参数(factor)减慢,直到粒子的速度达到25 像素每秒
这个阈值像一个过滤器。粒子运动速度高于阈值将会按照给定的参数来 减慢它

Turbulence紊流

  • 紊流控制器,对粒子应用了一个混乱映射方向力的矢量。
  • 这个混乱映射是由一个噪声图像定义的。
  • 可以使用noiseSource属性来定义噪声图像。
  • strength定义了矢量对于粒子运动的影响有多大
            Turbulence { 
                anchors.horizontalCenter: 
                    parent.horizontalCenter 
                width: 240
                height: 120 
                system: particleSystem 
                strength: 100 
                Tracer {} 
            }
 

Wander漂移

  • 漂移控制器控制了轨迹
  • affectedParameter属性可以指定哪个参数控制了漂移(速 度,位置或者加速度)
  • pace属性制定了每秒最多改变的属性
  • yVariance指定了y 组件对粒子轨迹的影响
            Wander { 
                anchors.horizontalCenter: 
                    parent.horizontalCenter 
                width: 240
                height: 120 
                system: particleSystem 
                affectedParameter: Wander.Position 
                pace: 200 
                yVariance: 240 
                Tracer {} 
            }

end~汗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柔弱胜刚强.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值