spritegoal.qml Example File
particles/affectors/content/spritegoal.qml
import QtQuick 2.0
import QtQuick.Particles 2.0
Item {
id: root
width: 360
height: 540
MouseArea {
id: ma
anchors.fill: parent
}
ParticleSystem { id: sys }
Image {
source: "../../images/finalfrontier.png"
transformOrigin: Item.Center
anchors.centerIn: parent
NumberAnimation on rotation {
from: 0
to: 360
duration: 200000
loops: Animation.Infinite
}
}
ImageParticle {
system: sys
groups: ["starfield"]
source: "qrc:///particleresources/star.png"
colorVariation: 0.3
color: "white"
}
Emitter {
id: starField
system: sys
group: "starfield"
emitRate: 80
lifeSpan: 2500
anchors.centerIn: parent
acceleration: PointDirection { xVariation: 200; yVariation: 200; }
size: 0
endSize: 80
sizeVariation: 10
}
Emitter {
system: sys
group: "meteor"
emitRate: 12
lifeSpan: 5000
acceleration: PointDirection { xVariation: 80; yVariation: 80; }
size: 15
endSize: 300
anchors.centerIn: parent
}
ImageParticle {
system: sys
groups: ["meteor"]
sprites:[Sprite {
id: spinState
name: "spinning"
source: "../../images/meteor.png"
frameCount: 35
frameDuration: 40
randomStart: true
to: {"explode":0, "spinning":1}
},Sprite {
name: "explode"
source: "../../images/_explo.png"
frameCount: 22
frameDuration: 40
to: {"nullFrame":1}
},Sprite {
name: "nullFrame"
source: "../../images/nullRock.png"
frameCount: 1
frameDuration: 1000
}
]
}
SpriteGoal {
groups: ["meteor"]
system: sys
goalState: "explode"
jump: true
anchors.fill: rocketShip
width: 60
height: 60
}
Image {
id: rocketShip
source: "../../images/rocket.png"
anchors.centerIn: holder
rotation: (circle.percent+0.25) * 360
z: 2
}
Item {
id: holder
x: circle.x - Math.sin(circle.percent * 6.28316530714)*200
y: circle.y + Math.cos(circle.percent * 6.28316530714)*200
z: 1
}
Item {
id: circle
x: root.width / 1.2
y: root.height / 1.7
property real percent: 0
SequentialAnimation on percent {
id: circleAnim1
loops: Animation.Infinite
running: true
NumberAnimation {
duration: 4000
from: 1
to: 0
}
}
}
ImageParticle {
z:0
system: sys
groups: ["exhaust"]
source: "qrc:///particleresources/fuzzydot.png"
color: "orange"
SequentialAnimation on color {
loops: Animation.Infinite
ColorAnimation {
from: "red"
to: "cyan"
duration: 1000
}
ColorAnimation {
from: "cyan"
to: "red"
duration: 1000
}
}
colorVariation: 0.2
}
Emitter {
id: trailsNormal2
system: sys
group: "exhaust"
emitRate: 300
lifeSpan: 500
y: holder.y
x: holder.x
velocity: PointDirection { xVariation: 40; yVariation: 40; }
velocityFromMovement: 16
acceleration: PointDirection { xVariation: 10; yVariation: 10; }
size: 4
sizeVariation: 4
}
}