Перейти к основному содержанию

emitters

7 июня 2024 г.

emitters

Автоматически переведённая страница

К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).

Модуль emitters позволяет запускать эффекты частиц, присоединять их к копиям или делать так, чтобы они следовали за чем-то.

Внутри него используется модуль particle-emitter.

Примечание

Если у вас нет ассетов-эмиттеров в вашем проекте, то emitters не будут доступен. Он включен только в том случае, если у вас есть системы частиц в вашем проекте, чтобы сделать браузерные сборки меньшими по размеру.

Создание эффектов

Существует три метода с разным логическим построением, каждый из которых подходит для конкретных ситуаций:

Давайте рассмотрим все они на практике (обратите внимание, как реагирует трассировка к движениям робота):

emitters.fireemitters.followemitters.append
JavaScript
// Код из примера "fire"
emitters.fire('HeartTrail', this.x, this.y - 70);
JavaScript
// Пример "follow"
emitters.follow(this, 'HeartTrail', {
    position: {
        x: 0,
        y: -70
    }
});
JavaScript
// Пример "append"
emitters.append(this, 'HeartTrail', {
    position: {
        x: 0,
        y: -70
    }
});

Дополнительные параметры

Вы, возможно, заметили, что эти три метода принимают дополнительный аргумент (например, emitters.fire('NameOfAnEffect', x, y, options)). Это объект, который позволяет настроить внешний вид и поведение эффекта:

Каждое свойство является опциональным. Например, если мы хотим создать меньший красный эффект над копией, который имеет ту же глубину, что и копия, мы напишем:

JavaScript
emitters.follow(this, 'Debuff', {
    scale: {
        x: 0.75,
        y: 0.75
    },
    position: {
        x: 0,
        y: -80
    },
    tint: 0xff9999,
    depth: this.zIndex
});

Манипуляции с эмиттерами

Созданные эффекты будут хорошо себя вести по умолчанию: они останутся и будут автоматически прекращены, когда истечет их время жизни или когда будет уничтожен их владелец, оставив приятный след частиц. Но иногда нам нужно полностью очистить эффект, приостановить его или возобновить позже, или остановить его раньше обычного.

Каждый из emitters.fire, emitters.append и emitters.follow возвращает ссылку на созданный эффект, которую мы можем использовать:

JavaScript
// Давайте создадим защитную пузырьковую оболочку!
this.shield = emitters.append(this, 'BubbleEffect');

// Позже, когда нам больше не нужен щит:
this.shield.stop();
this.shield = null; // Забудьте об эффекте, чтобы освободить память

Существует несколько свойств, которые мы можем использовать таким образом:

Your primary language is en-US, do you want to switch to it?

Ваш основной язык - en-US, вы хотите переключиться на него?