qtdoc/examples/demos/samegame/content/SmokeText.qml

48 lines
1.4 KiB
QML
Raw Normal View History

// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Particles
Item {
id: smokeText
z: 10
property alias source: img.source
property alias system: emitter.system
property int playerNum: 1
function play() {
anim.running = true;
}
anchors.centerIn: parent
Image {
opacity: 0
id: img
anchors.centerIn: parent
rotation: smokeText.playerNum == 1 ? -8 : -5
Emitter {
id: emitter
group: "smoke"
anchors.fill: parent
shape: MaskShape { source: img.source }
enabled: false
emitRate: 1000
lifeSpan: 600
size: 64
endSize: 32
velocity: AngleDirection { angleVariation: 360; magnitudeVariation: 160 }
}
}
SequentialAnimation {
id: anim
running: false
PauseAnimation { duration: 500}
ParallelAnimation {
NumberAnimation { target: img; property: "opacity"; from: 0.1; to: 1.0 }
NumberAnimation { target: img; property: "scale"; from: 0.1; to: 1.0 }
}
PauseAnimation { duration: 250}
ScriptAction { script: emitter.pulse(100); }
NumberAnimation { target: img; property: "opacity"; from: 1.0; to: 0.0 }
}
}