Частицы в Qt
Описание моего приложения
Я пытаюсь показать приятную временную анимацию того, как дорожное движение в городе влияет на движение транспорта (каждая стойка - это точка, которая становится все ближе к зеленому при заполнении, больше к красному, когда становится пустым и т. Д.)
Что у меня пока
Нечто похожее на изображение выше.
Это мой код, который сгенерировал это:
import QtQuick 2.0
import QtQuick.Particles 2.0
Rectangle {
width: 360
height: 360
color: "black"
id: bg
ParticleSystem {
id: sys
}
Emitter {
anchors.fill: parent
system: sys
ImageParticle {
anchors.fill: parent
system: sys
source: "images/greenBlip.png"
clip: true
id: redblip
}
lifeSpan: 6000
}
}
Актуальный вопрос
К сожалению, в приложении сейчас я не могу контролировать следующее:
- где и сколько частиц появляется
- как они ярки
- продолжительность жизни (я не хочу, чтобы они исчезли)
Есть идеи, как это контролировать?
1 ответ
Чтобы выпустить, скажем, 1000 частиц с бесконечной жизнью, в наборе Emitter:
lifeSpan: Emitter.InfiniteLife
maximumEmitted: 1000
Эмитент onEmitParticles(Array particles)
Сигнал дает вам доступ ко всем частицам. Вы можете сохранить этот массив, а затем изменить его по своему желанию. Я не проверял, насколько сложно будет получить доступ к этому массиву из C++. Это возможно, но у Particle есть частная реализация, и вам нужно будет извлекать частные заголовки и т. Д. Вы также можете присоединить сигнал к коду C++ с тем же предостережением.