Las partículas tienen vida en sistemas de partículas. Por lo que para tener partículas en tu juego necesitas crear uno o más sistemas de partículas. Puede haber muchos tipos diferentes de sistemas de partículas. Por ejemplo, si tu juego tiene varias pelotas y cada pelota debiera tener una cola de partículas, lo más probable es que cada pelota tenga su sistema de partículas. La manera más fácil para manejar los sistemas de partículas es crear uno y luego crear partículas en él, usando los tipos partículas que especificaste antes. Pero, como veremos a continuación, los sistemas de partículas pueden contener emisores que automáticamente producen partículas, atractores que las atraen y destructores que las eliminan.
Una vez que las partículas se añaden a un sistema son dibujadas y actualizadas en cada step automáticamente. Para definir si las partículas se deben dibujar delante o detrás de las demás instancias, los sistemas de partículas poseen una profundidad.
Los sistemas de partículas no se eliminarán aunque reinicies el juego, para eliminarlos debes usar la función adecuada. Así que asegúrate de hacerlo cuando ya no los necesites.
Las siguientes funciones permiten manejar los sistemas de partículas:
part_system_create()
Crea un nuevo
sistema de partículas. Devuelve el índice del sistema creado. Este índice debe
emplearse en las llamadas a las funciones siguientes para configurar las
propiedades del sistema de partículas.
part_system_destroy(ind)
Destruye el sistema
de partículas ind. Llama a esta función si ya no harás uso del sistema para
ahorrar espacio.
part_system_exists(ind)
Devuelve si el
sistema de partículas ind existe.
part_system_clear(ind)
Devuelve el sistema
ind a sus valores por defecto, removiendo todas las partículas, emisores y
atractores en él.
part_system_draw_order(ind,oldtonew)
Establece el orden
en el que el sistema dibuja las partículas. Cuando oldtonew es true las
partículas más viejas son dibujadas primero y las nuevas se dibujan sobre ellas
(valor por defecto). De otra forma las partículas más recientes son dibujadas
primero. Esto puede resultar en varios efectos diferentes.
part_system_depth(ind,depth)
Especifica la profundidad
del sistema de partículas.
part_system_position(ind,x,y)
Especifica la posición en
la que se dibuja el sistema de partículas. Si quieres dibujar el sistema
relativo a un objeto puedes usar sus coordenadas.
Como ya hemos visto, los sistemas de partículas se dibujan y actualizan automáticamente. Pero a veces puedes no querer que esto sea así. Las siguientes funciones te permiten controlar estos aspectos:
part_system_automatic_update(ind,automatic)
Indica si el sistema debe
actualizare automáticamente (1) o no (0).
part_system_automatic_draw(ind,automatic)
Indica si el sistema debe
dibujarse automáticamente (1) o no (0).
part_system_update(ind)
Esta función actualiza el
sistema y permite a los emisores crear partículas. Puedes llamar a esta función
cuando no uses actualización automática, o para acelerar un poco el sistema al
inicio.
part_system_drawit(ind)
Esta función dibuja el
sistema de partículas si has desactivado la opción automática. Debes llamar a
esta función desde el evento draw de algún objeto.
Las siguientes funciones se encargan de las partículas de un sistema de partículas:
part_particles_create(ind,x,y,parttype,number) Esta función crea number partículas del tipo ind en la posición (x,y) dentro del sistema.
part_particles_create_color(ind,x,y,parttype,color,number) Esta función crea number partículas del tipo ind en la posición (x,y) dentro del sistema con el color indicado. Esto es útil cuando el tipo de partícula sólo usa un color o no define ninguno.
part_particles_clear(ind)
Esta función elimina
todas las partículas del sistema.
part_particles_count(ind)
Esta función
devuelve el número de partículas en el sistema.