有多种可用矢量空间用来定有多种方法定义粒子的速度或加速度:
- 角度方向(AngleDirection)- 使用角度的方向变化。
- 点方向(PointDirection)- 使用x,y组件组成的方向变化。
- 目标方向(TargetDirection)- 朝着目标点的方向变化。
使用 AngleDirection 改变粒子的速度和方向
代码:
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Particles 2.0
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Item{
anchors.fill: parent
Rectangle{
id:root
anchors.fill: parent
color: "#1f1f1f"
ParticleSystem{
id:particleSystem
}
Emitter{
id:emitter
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
width: 1
height: 1
system: particleSystem
// 每秒发射10个粒子
emitRate: 10
// 每个粒子的生命周期
lifeSpan:6400
// 一个已发射粒子的生命周期变化是 400毫秒
lifeSpanVariation: 400
// 一个粒子开始的大小
size: 32
// 使用“角度方向”的方式
velocity: AngleDirection {
// 角度为 0 表示向右运动
angle: 0
// 角度的变化范围在 +-15度之间
angleVariation: 15
// 设置梯度值,表示了速度
magnitude: 100
// 梯度值的变化范围
magnitudeVariation: 50
}
}
ImageParticle{
// 改变粒子图片
source:"qrc:/new/preImg/star.png"
system:particleSystem
// 使用金色来初始化
color: '#FFD700'
// 不同的粒子颜色变化范围为+/- 50%。
colorVariation: 0.3
// 每个粒子首先按顺时针旋转 0 度
rotation: 0
// 不同 的粒子在+/-45度之间变化
rotationVariation: 45
// 每个例子会不断的以每秒15度旋转
rotationVelocity: 15
// 每个粒子的旋转速 度在+/-15度之间变化
rotationVelocityVariation: 15
// 粒子的入场有缩放效果
entryEffect: ImageParticle.Scale
}
}
}
}
例子我们使用了“角度方向”的方式改变了粒子的运动方向和速度!
运行>>
加速度
// 使用“角度方向”的方式
velocity: AngleDirection {
// 角度为 0 表示向右运动
angle: -45
// 角度的变化范围在 +-15度之间
angleVariation: 0
// 设置梯度值,表示了速度
magnitude: 100
// 梯度值的变化范围
// magnitudeVariation: 50
}
acceleration: AngleDirection {
angle: 90
magnitude: 25
}
加速度这一块有点不透彻~