Системы частиц

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

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

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

Следующие функции взаимодействуют с системами частиц:

part_system_create() Создаёт новую систему частиц. Возвращает идентификатор типа. Этот идентификатор должен быть использован во всех нижеуказанных функциях, чтобы устанавливать свойства системы частиц.
part_system_destroy(ind) Уничтожает систему частиц с именем ind. Выберите это, если Вам больше не нужна система частиц, чтобы сохранить пространство.
part_system_exists(ind) Возвращает, если указанная система частиц существует.
part_system_clear(ind) Очищает систему частицы с именем ind на установки по умолчанию, удаляя в ней все имеющиеся частицы, эмитенты и аттракторы.
part_system_draw_order(ind,oldtonew) Устанавливает порядок, в котором система частиц рисует частицы. Когда oldtonew - истина, то старшие частицы рисуются первые, а новые частицы располагаются cверху них (по умолчанию). В противном случае новые частицы создаются сначала, что может привести к другим эффектам.
part_system_depth(ind,depth) Устанавливает глубину системы частиц. Это может использоваться, чтобы позволить частице появляються позади, впереди или между образцами.
part_system_position(ind,x,y) Устанавливает позицию, где система частиц будет нарисована. Обычно, это не столь необходимо, но если Вы хотите иметь частицы в относительной позиции к двигающемуся объекту, то Вы можете установить позицию, например, к тому объекту.

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

part_system_automatic_update(ind,automatic) Указывает, должна ли система частицы быть обновлена автоматически (1) или нет (0). По умолчанию 1.
part_system_automatic_draw(ind,automatic) Указывает, должна ли система частицы быть перерисована автоматически (1) или нет (0). По умолчанию 1.
part_system_update(ind) Это функция обновляет позицию всех частиц в системе и позволяет эмитентам создавать частицы. Вы только вызвать эту функцию в том случае, когда обновление не является автоматическим. (Хотя иногда также полезно вызвать эту функцию через некоторое время, чтобы получить движение системы.)
part_system_drawit(ind) Эта функция рисует частицы в системе. Вы только вызвать эту функцию в том случае, когда рисование не является автоматическим. Функция должна быть вызвана в событии рисования некоторого объекта.

Следующие функции в системах частиц взаимодействуют с частицами:

part_particles_create(ind,x,y,parttype,number) Создаёт некоторое количество number частиц указанного типа ind в позиции (x,y) в системе.
part_particles_create_color(ind,x,y,parttype,color,number) Эти функции создаёт количество number частиц указанного типа в позиции (x,y) в системе с указанным цветом. Это полезное только когда тип частицы определяет единственный цвет (или не определяет цвет совсем).
part_particles_clear(ind) Удаляет все частицы из системы.
part_particles_count(ind) Возвращает количество частиц в системе.