Частицы

Материал из Вики по GameMaker
Перейти к: навигация, поиск
Эта страница была перенесена сюда из справки GM8. Проект переноса справки в вики отменён. Документация будет построена в другом формате: это будут отдельные статьи по каждой функции, объединённые в категории. Подробности — на портале сообщества.
Существующие страницы справки GM8 подлежат удалению. Не переносите в вики новые страницы из справки!
← Структуры данных/Сетки     ↰ Game Maker Language     Частицы/Простые эффекты →

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

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

Чтобы работать с частицами, определите типы частиц и создайте системы частиц. У типа частиц есть множество параметров, описывающих форму, размер, цвет и движение частиц. Типы нужно объявить один раз и потом использовать во всей игре. Система частиц может содержать частицы разных типов, а также генераторы, уничтожители, притягиватели, отражатели и преобразователи частиц. Система автоматически обрабатывает (обновляет и рисует на экране) созданные в ней частицы.

Важно помнить, что всё, что связано с частицами, работает глобально. Типы и системы частиц не зависят от объекта, которые их создаёт.

[править] Пример фейерверка

//Создадим систему частиц
ps_global = part_system_firework_create();

//Создадим тип частиц для фейерверка
pt_spark = part_type_create();
part_type_shape(pt_spark, pt_shape_flare);
part_type_size(pt_spark, 0.1, 0.2, 0, 0);
part_type_speed(pt_spark, 0.5, 4, 0, 0);
part_type_direction(pt_spark, 0, 360, 0, 0);
part_type_color1(pt_spark, c_red);
part_type_alpha2(pt_spark, 1, 0.4);
part_type_life(pt_spark, 20, 30);
part_type_gravity(pt_spark, 0.2, 270);

//Создадим тип частиц для ракеты
pt_rocket = part_type_create();
part_type_shape(pt_rocket, pt_shape_sphere);
part_type_size(pt_rocket, 0.2, 0.2, 0, 0);
part_type_speed(pt_rocket, 10, 14, 0, 0);
part_type_direction(pt_rocket, 80, 100, 0, 0);
part_type_color2(pt_rocket, c_white, c_gray);
part_type_life(pt_rocket, 30, 60);
part_type_gravity(pt_rocket, 0.2, 270);
part_type_death(pt_rocket, 150, pt_spark); // создать фейерверк при смерти

// Создадим генератор частиц, который будет создавать ракеты
em_firework = part_em_fireworkitter_create(ps_global);
part_em_fireworkitter_region(ps_global, em_firework, 
    100, 540, 480, 490, 
    ps_global_shape_rectangle, ps_global_distr_linear);
part_em_fireworkitter_stream(ps_global, 
em_firework, pt_rocket, -4); // создавать ракету каждые 4 секунды
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты