4.7 KiB
4.7 KiB
Частицы
Частицы представляют собой таблицу, все поля которой опциональны.
| Поле | Описание | По-умолчанию |
|---|---|---|
| texture | Текстура частицы. | "" |
| frames | Кадры анимации (массив имен текстур). Должны находиться в одном атласе. | {} |
| lighting | Освещение. | true |
| collision | Обнаружение столкновений. | true |
| max_distance | Максимальная дистанция от камеры, при которой происходит спавн частиц. | 16.0 |
| spawn_interval | Интервал спавна частиц в секундах. | 1.0 |
| lifetime | Среднее время жизни частиц в секундах. | 5.0 |
| lifetime_spread | Максимальное отклонение времени жизни частицы (от 0.0 до 1.0). | 0.2 |
| velocity | Начальная линейная скорость частиц. | {0, 0, 0} |
| acceleration | Ускорение частиц. | {0, -16, 0} |
| explosion | Сила разлёта частиц при спавне. | {2, 2, 2} |
| size | Размер частиц. | {0.1, 0.1, 0.1} |
| size_spread | Максимальное отклонение времени размера частиц. | 0.2 |
| angle_spread | Максимальное отклонение начального угла поворота (от 0 до 1) | 0.0 |
| min_angular_vel | Минимальная угловая скорость (радианы в сек.). Неотрицательное. | 0.0 |
| max_angular_vel | Максимальная угловая скорость (радианы в сек.). Неотрицательное. | 0.0 |
| spawn_shape | Форма области спавна частиц. (ball/sphere/box) | ball |
| spawn_spread | Размер области спавна частиц. | {0, 0, 0} |
| random_sub_uv | Размер случайного подрегиона текстуры (1 - будет использована вся текстура). | 1.0 |
Библиотека gfx.particles
gfx.particles.emit(
-- позиция эмиттера: статические координаты или uid сущности
origin: vec3 | int,
-- количество частиц (-1 - бесконечно)
count: int,
-- таблица настроек частиц
preset: table,
-- дополнительная таблица настроек частиц
[опционально] extension: table
) -> int
Создаёт эмиттер частиц, возвращая его id.
gfx.particles.stop(id: int)
Останавливает эмиттер без возможности возобновления. Эмиттер будет удален позже автоматически.
gfx.particles.is_alive(id: int) -> bool
Проверяет, работает ли эмиттер. Возвращает false если работа прекращена или эмиттер не существует.
gfx.particles.get_origin(id: int) -> vec3 | int
Возвращает статическую позицию или uid сущности, к которой привязан эмиттер. Если эмиттера не существует, возвращает nil.
gfx.particles.set_origin(id: int, origin: vec3 | int)
Устанавливает статическую позицию или uid сущности, к которой будет привязан эмиттер.