Параметры частиц: lifespan, speed, scale, alpha, angle

Фреймворк Phaser предоставляет мощный инструмент для создания визуальных эффектов с помощью системы частиц. Контроль над отдельными параметрами частиц позволяет создавать динамичные и реалистичные анимации, от огня и дыма до магических эффектов. Рассмотрим ключевые свойства, влияющие на поведение частиц: lifespan, speed, scale, alpha и angle.


Lifespan (Время жизни)

lifespan определяет продолжительность существования частицы в миллисекундах. Этот параметр задаёт, как долго частица будет отображаться на сцене, прежде чем исчезнуть.

Примеры использования:

this.particles.createEmitter({
    x: 400,
    y: 300,
    lifespan: 2000, // частица живет 2 секунды
    speed: { min: 100, max: 200 },
});
  • Значение может быть фиксированным (lifespan: 1000) или диапазоном (lifespan: { min: 500, max: 1500 }).
  • Использование диапазона позволяет создавать эффект более естественного и случайного поведения.

Особенности:

  • Частицы с коротким lifespan быстро исчезают, создавая эффекты вспышек или искр.
  • Длинный lifespan подходит для дыма или следов, которые должны медленно исчезать.

Speed (Скорость)

speed управляет начальной скоростью движения частицы. Этот параметр может быть как постоянным, так и варьироваться в пределах диапазона.

Пример с диапазоном скорости:

this.particles.createEmitter({
    x: 400,
    y: 300,
    speed: { min: 50, max: 150 },
    lifespan: 1000
});
  • Чем выше значение speed, тем быстрее частица покидает точку эмиссии.
  • Частицы могут двигаться линейно или под влиянием гравитации и других сил (gravityX, gravityY).
  • Использование случайных значений придаёт динамичность и естественность движению частиц.

Scale (Масштаб)

scale определяет размер частицы. Он может быть зафиксированным или изменяться с течением времени.

Пример анимации масштаба:

this.particles.createEmitter({
    x: 400,
    y: 300,
    speed: 100,
    scale: { start: 1, end: 0 }, // частица уменьшается до нуля
    lifespan: 1500
});
  • start – начальный размер частицы.
  • end – размер частицы в конце жизни.
  • Изменение масштаба создаёт иллюзию растворения, исчезновения или увеличения эффекта.

Особенности использования:

  • Можно использовать функции или случайные значения для создания разнообразных визуальных эффектов.
  • Масштаб тесно связан с alpha, создавая плавное исчезновение частицы.

Alpha (Прозрачность)

alpha определяет прозрачность частицы. Значение находится в диапазоне от 0 (полностью прозрачная) до 1 (полностью непрозрачная).

Пример плавного исчезновения:

this.particles.createEmitter({
    x: 400,
    y: 300,
    speed: 120,
    alpha: { start: 1, end: 0 },
    lifespan: 1000
});
  • Позволяет создавать эффект растворения или затухания частиц.
  • Может комбинироваться с scale для плавного исчезновения с уменьшением размера.
  • Использование диапазонов случайных значений добавляет разнообразие прозрачности, делая анимацию более реалистичной.

Angle (Угол движения)

angle управляет направлением движения частицы. Он может задаваться фиксированным значением или диапазоном углов.

Пример разлетающихся частиц:

this.particles.createEmitter({
    x: 400,
    y: 300,
    speed: 200,
    angle: { min: 0, max: 360 },
    lifespan: 1000
});
  • – движение вправо, 90° – вниз, 180° – влево, 270° – вверх.
  • Диапазон углов позволяет создавать эффекты взрыва или разлетающихся искр.
  • Можно комбинировать с gravityX и gravityY для сложной траектории движения.

Сочетание параметров

На практике эффекты частиц достигают реализма только при комбинировании этих параметров:

  • Взрыв огня: короткий lifespan, высокая speed, уменьшающийся scale, постепенно исчезающий alpha, широкий диапазон angle.
  • Дым: длинный lifespan, низкая speed, увеличивающийся scale, слегка уменьшающийся alpha, вертикальное направление движения.
  • Магические искры: средний lifespan, высокая speed, изменяющийся scale и alpha, случайный angle.

Эти свойства позволяют точно настроить поведение каждой частицы и создать визуально привлекательные эффекты, полностью контролируемые через конфигурацию эмиттера.