Система частиц доступна в модуле Qt.labs.particles 1.0. Совместимость элементов из модуля Qt.labs с последующими версиями Не гарантируется. Этот элемент предоставляет предварительную поддержку частиц в QML и может быть серъезно изменен или удален в последующих версиях.
С частицами, созданными с помощью этого модуля, нельзя иметь дело непосредственно, ими можно управлять только через параметры объекта Particles. Все частицы являются одной и той же картинкой, определенной пользователем. Частицы рисуются относительно их родительского объекта Particles. Перемещение объекта Particles не будет влиять на перемещение частицы, уже испущенной. В этом примере создается два объекта Particles, которые ведут себя по разному. У верхнего объекта частицы падают от вершины как снег, у нижнего частицы бъют снизу, как фонтан.
import QtQuick 1.0 import Qt.labs.particles 1.0
Rectangle { width: 240 height: 320 color: "black" Particles { y: 0 width: parent.width height: 30 source: "star.png" lifeSpan: 5000 count: 50 angle: 70 angleDeviation: 36 velocity: 30 velocityDeviation: 10 ParticleMotionWander { xvariance: 30 pace: 100 } }
Particles { y: 300 x: 120 width: 1 height: 1 source: "star.png" lifeSpan: 5000 count: 200 angle: 270 angleDeviation: 45 velocity: 50 velocityDeviation: 30
ParticleMotionGravity { yattractor: 1000 xattractor: 0 acceleration: 25 } } }
Свойства объектов.
angle : real angleDeviation : real
Эти свойства контролируют направление движения частиц. AngleDeviation рандомно изменяет направление в пределах указанного значения. Например, в этом примере создаются частицы, начальное направление которых может принимать значения от 15 градусов до 105: Particles {
source: "star.png"
angle: 60
angleDeviation: 90
}
count : int
Это свойство определяет максимально допустимое количество активных частиц. Элемент Particles будет испускать частицы, пока не будет достигнуто это значение. Когда это число будет достигнуто, новые частицы испускаются не будут до тех пор, пока некоторые из активных частиц не достигнут конца продолжительности их жизни. Если в качестве count указать "-1", тогда частицы будут испускаться бесконечно. Значение по умолчанию: 1. Если и count и emissionRate будут одновременно установлены в "-1", то частицы испускаться не будут.
emissionRate : int
Это свойство определяет, сколько частиц будет испускаться каждую секунду. Если emissionRate установлен в "-1", то частицы будут с такой скоростью, с которой позволяет оборудование. Значение по умолчанию для emissionRate: "-1". Если и count и emissionRate будут одновременно установлены в "-1", то частицы испускаться не будут.
emissionVariance : real
Это свойство устанавлиет, насколько случайной будет частота эмиссии частицы. Это - число между 0 (частота постояна) и 1 (максимальное колебание частоты). средняя частота задается emissionRate. Если emissionVariance будет 0, тогда частицы будут последовательно испускаться через равные промежутки времени. Если emissionVariance будет больше чем 0, то частицы будут испускаться беспорядочно. Обратите внимание, что даже с emissionVariance 0 может быть некоторое различие в частоте из-за ограничений аппаратных средств. Значение по умолчанию emissionVariance: 0.5
fadeInDuration : int
fadeOutDuration : int
Эти свойства устанавливают время возникновения частицы (fadeInDuration) и время её затухания (fadeOutDuration). Значения по умолчанию: fadeInDuration - 200 миллисекунд, fadeOutDuration - 300 миллисекунд.
lifeSpan : int
lifeSpanDeviation : int
Эти свойства задают продолжительность жизни каждой частицы. Продолжительность жизни (lifeSpan) по умолчанию для частицы составляет 1000 миллисекунд. lifeSpanDeviation беспорядочно изменяет продолжительность жизни в пределах указанного значения. Например, следующий пример создает частицы, чья продолжительность жизни изменяется от 150 миллисекунд до 250 миллисекунд: Particles {
source: "star.png"
lifeSpan: 200
lifeSpanDeviation: 100
}
motion : ParticleMotion
Это свойсво устанавливает тип движения частиц. Тип движения по умолчанию - ParticleMotionLinear.
source : string
Это свойство задает путь до картинки, которая будет использована для создания частицы.
velocity : real
velocityDeviation : real
Это свойство контролирует ускорение частиц. velocityDeviation беспорядочно изменяет ускорение в пределах указанного изменения. Например, следующий код создает частицы, чьи начальные ускорения колеблются от 40 до 60: Particles {
source: "star.png"
velocity: 50
velocityDeviation: 20
}
Описание методов.
Particles::burst ( int count, int emissionRate )
Вызов метода инициирует взрыв частиц. Метод имеет два аргумента. Первый аргумент (count) - число частиц, которое будет создано при взрыве. Второй аргумент (emissionRate) - скорость взрыва. Если второй аргумент опущен, то его значение принимается равным "-1".
Несколько идей применения Particle System на ваших формах: - возгорание кнопки при наведении на нее мыши
- сгорание закладок при перемещении между ними
- на неактивных (затемненных) формах идет дождь, или снег
Есть еще идеи? Пишите в комменты, поделитесь с коллегами!
Источник: http://doc.qt.nokia.com/4.7/qml-particles.html |