Sistemas de Partículas 2D

Autor

Jesús Bosch
Coordinador UOC DotNetClub
Blog: http://geeks.ms/blogs/jbosch/

Última Actualización

28/04/2010

Descripción

Un “must-do” de la programación gráfica es implementar nuestro propio sistema de partículas. Un sistema de partículas, a pesar de lo sofisticado de su nombre, no es más que un montón de “objetos”, a los que llamaremos partículas, cada uno de ellos con un comportamiento autónomo, pero con cierta relación con el de las demás partículas del mismo sistema. Esto se acostumbra a utilizar para generar efectos parecidos a los que se producen en la naturaleza, como humo, fuego, explosiones… la idea básica aplica tanto para 2D como 3D, sólo cambiarían los tipos de vectores y la forma de pintar, pero la lógica sería la misma o muy parecida.

Como no se si os habré aclarado o liado más con mi particular definición de lo que es un sistema de partículas… os pongo un enlace a la definición técnica de la wikipedia…

Así pues, sin más dilación, en este ejemplo os explicaré como implementar un sencillo sistema de partículas para generar un efecto parecido al humo, básicamente el código hace lo que podéis ver en este vídeo:



Cómo podéis ver el efecto es muy sencillo, pero trabajándolo se pueden conseguir cosas muy interesantes. Veamos el código de una vez…

Toda la lógica se almacena en una clase que he llamado ManagerParticulas. Con esto conseguimos tener un objeto reutilizable para aplicar las partículas de ese tipo en el momento que queramos. Contiene un montón de constantes, la textura (que es la misma para todas las partículas) y la posición inicial de la que parten todas las partículas “en principio”. Y lo pongo entre comillas porqué al inicializar cada partícula es muy importante que apliquemos un factor de aleatoriedad a cada propiedad de la misma… Todas esas constantes definen valores máximos y mínimos relativos a las partículas.

managerParticulas.png

La clase Particula es la que nos permite almacenar la información de los cientos de partículas que podemos manejar a la vez.

particula.png

Explicaciones adicionales referentes al código pueden ser encontradas en mi blog:
http://geeks.ms/blogs/jbosch/archive/2010/04/28/xna-sistemas-de-part-237-culas-en-2d.aspx


Descarga

EjemploParticulas.rar - ( XNA GS 3.1)

Last edited Apr 28, 2010 at 5:55 PM by jbosch, version 3

Comments

No comments yet.