blob: c9d03baaadbffc4d009d1cc343e7bf45ef05e9f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick3D.Particles3D
ParticleEmitter3D {
id: root
property real timeVariance: 0.0
property real minTime: 0.0
property real amountVariance: 0
property alias running : fa.running
property vector3d positionVariance: Qt.vector3d(0, 0, 0)
onTimeVarianceChanged: initRandomEmitter()
onMinTimeChanged: initRandomEmitter()
QtObject {
id: vars
property int curTicks: 0
property int burstTicks: 0
property int amount: 0
property vector3d position
}
function initRandomEmitter()
{
var burstTime = Math.random() * timeVariance + minTime
vars.burstTicks = burstTime / 16
vars.curTicks = 0
vars.amount = 1 + Math.random() * amountVariance
vars.position = Qt.vector3d(Math.random() * positionVariance.x, Math.random() * positionVariance.y, Math.random() * positionVariance.z)
}
FrameAnimation {
id: fa
onTriggered: {
vars.curTicks++
if (vars.curTicks > vars.burstTicks) {
root.burst(vars.amount, 0, vars.position)
root.initRandomEmitter()
}
}
}
}
|