如何从我的 window 的中心生成粒子? (qml)
How to generate particles from the center of my window? (qml)
我在 qml 中使用 粒子系统 ,但我希望我的粒子 来自我的矩形。
以上我可以告诉你已经完成了,但我不喜欢的是粒子出现无方向性
我想让粒子从中心均匀地分布到两端,但我不知道该怎么做。
如果有人我可以提出一些想法。
我附上我的代码。
接受解决我问题的更正、想法或建议。
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
id: bg
width: 360
height: 360
color: "black"
ParticleSystem {
id: particleSys
}
Emitter{
id: emitter
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 5
endSize: 40
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
}
ImageParticle{
source: "images/blueBlip.png" //My image
system: particleSys
}
}
谢谢。
我就是提问的人
我找到了解决我的问题的方法。
要发射有序粒子,您可以使用 burst() 方法。
此事件允许我们从发射器发射一定数量的粒子。您可以根据需要对其进行操作。
我是通过 Timmer 实现的:
Timer{
interval: 500; running: true; repeat: true
onTriggered: particles.burst(particles.emitRate)
}
代码如下所示:
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
id: bg
width: 360
height: 360
color: "black"
ParticleSystem {
id: particleSys
}
Emitter{
id: particles
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 5
endSize: 40
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
Timer{
interval: 500; running: true; repeat: true
onTriggered: particles.burst(particles.emitRate)
}
}
ImageParticle{
source: "images/blueBlip.png" //My image
system: particleSys
}
}
如果有人知道更有效的方法或有人可以改进它...贡献您的答案。
谢谢
谢谢!
虽然你不需要计时器!您只需调用 particles.burst() 一次即可启动。每半秒调用一次可能会减慢速度;相反,您应该将发射器开始时间设置为 0。
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
id: bg
width: 360
height: 360
color: "black"
ParticleSystem {
id: particleSys
}
Emitter{
id: particles
startTime: 0
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 5
endSize: 40
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
}
ImageParticle {
source: "images/blueBlip.png" //My image
system: particleSys
}
}
或者您可以在特定事件上调用 particles.burst(),例如 Component.onCompleted:
Emitter{
id: particles
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 80
endSize: 100
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
Component.onCompleted: {
particles.burst(particles.emitRate)
}
}
我在 qml 中使用 粒子系统 ,但我希望我的粒子 来自我的矩形。
以上我可以告诉你已经完成了,但我不喜欢的是粒子出现无方向性
我想让粒子从中心均匀地分布到两端,但我不知道该怎么做。
如果有人我可以提出一些想法。
我附上我的代码。
接受解决我问题的更正、想法或建议。
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
id: bg
width: 360
height: 360
color: "black"
ParticleSystem {
id: particleSys
}
Emitter{
id: emitter
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 5
endSize: 40
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
}
ImageParticle{
source: "images/blueBlip.png" //My image
system: particleSys
}
}
谢谢。
我就是提问的人
我找到了解决我的问题的方法。
要发射有序粒子,您可以使用 burst() 方法。
此事件允许我们从发射器发射一定数量的粒子。您可以根据需要对其进行操作。
我是通过 Timmer 实现的:
Timer{
interval: 500; running: true; repeat: true
onTriggered: particles.burst(particles.emitRate)
}
代码如下所示:
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
id: bg
width: 360
height: 360
color: "black"
ParticleSystem {
id: particleSys
}
Emitter{
id: particles
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 5
endSize: 40
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
Timer{
interval: 500; running: true; repeat: true
onTriggered: particles.burst(particles.emitRate)
}
}
ImageParticle{
source: "images/blueBlip.png" //My image
system: particleSys
}
}
如果有人知道更有效的方法或有人可以改进它...贡献您的答案。
谢谢
谢谢!
虽然你不需要计时器!您只需调用 particles.burst() 一次即可启动。每半秒调用一次可能会减慢速度;相反,您应该将发射器开始时间设置为 0。
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
id: bg
width: 360
height: 360
color: "black"
ParticleSystem {
id: particleSys
}
Emitter{
id: particles
startTime: 0
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 5
endSize: 40
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
}
ImageParticle {
source: "images/blueBlip.png" //My image
system: particleSys
}
}
或者您可以在特定事件上调用 particles.burst(),例如 Component.onCompleted:
Emitter{
id: particles
anchors.centerIn: parent
height: 14; width: 16
system: particleSys
emitRate: 80
lifeSpan: 4000
lifeSpanVariation: 500
maximumEmitted: 1000
size: 80
endSize: 100
velocity: TargetDirection{
targetX: 0; targetY: 0
targetVariation: 360
magnitude: 250
}
Component.onCompleted: {
particles.burst(particles.emitRate)
}
}