在 qml 中永远防止 ParticleSystem 运行
Prevent ParticleSystem from running forever in qml
我正在尝试在我的应用程序中制作粒子效果,一切都做得很好,除了我无法限制发射器并使其自行停止而无需调用 ParticleSystem 的停止方法,尽管我已经设置了 maximumEmitted
到 100,为了说明这里是我的代码:
import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Particles 2.0
Window {
visible: true
width: 360
height: 360
ParticleSystem{
id:par
anchors.centerIn: parent
running: true
ImageParticle{
id:imagepar
source:"../../star_white.png"
color:"red"
}
Emitter{
id:myEmit
width:1 ; height:1
// anchors.centerIn: parent
size:10
emitRate: 100
maximumEmitted: 100
lifeSpan: 4000
velocity: AngleDirection{
angle: 180
angleVariation: 5
magnitude: 150
}
}
Gravity {
width: parent.width
y: 150
angle: 90
magnitude: 150
}
}
}
我已经尝试了以下方法,通过只发射一次让粒子停止自己的运动,但不幸的是它一直在发射
Age {
system: par
once: true
}
Affector {
system: par
once: true
}
我想我在这里遗漏了一行代码,这将使一切顺利,任何想法。
我第一个想到的是:
Emitter {
id: myEmit
....
enabled: false
Component.onCompleted: myEmit.pulse(1000)
....
}
我正在尝试在我的应用程序中制作粒子效果,一切都做得很好,除了我无法限制发射器并使其自行停止而无需调用 ParticleSystem 的停止方法,尽管我已经设置了 maximumEmitted
到 100,为了说明这里是我的代码:
import QtQuick 2.3
import QtQuick.Window 2.2
import QtQuick.Particles 2.0
Window {
visible: true
width: 360
height: 360
ParticleSystem{
id:par
anchors.centerIn: parent
running: true
ImageParticle{
id:imagepar
source:"../../star_white.png"
color:"red"
}
Emitter{
id:myEmit
width:1 ; height:1
// anchors.centerIn: parent
size:10
emitRate: 100
maximumEmitted: 100
lifeSpan: 4000
velocity: AngleDirection{
angle: 180
angleVariation: 5
magnitude: 150
}
}
Gravity {
width: parent.width
y: 150
angle: 90
magnitude: 150
}
}
}
我已经尝试了以下方法,通过只发射一次让粒子停止自己的运动,但不幸的是它一直在发射
Age {
system: par
once: true
}
Affector {
system: par
once: true
}
我想我在这里遗漏了一行代码,这将使一切顺利,任何想法。
我第一个想到的是:
Emitter {
id: myEmit
....
enabled: false
Component.onCompleted: myEmit.pulse(1000)
....
}