Частицы в 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++ с тем же предостережением.

Другие вопросы по тегам