sábado, 14 de julio de 2007

XNA: Pintar una imagen por pantalla

Buenas, he creado este mini-tutorial para pintar una imagen por pantallamediante XNA.

  1. Creamos un nuevo proyecto con XNA Game Studio Express de tipo Game Windows (para Xbox 360 seria lo mismo en realidad).
  2. Agregamos la imagen que queremos pintar al proyecto ( Proyecto -> Agregar Elemento Existente..).
  3. En la ventana de propiedades (Ver -> ventana de Propiedades) si clicamos sobre la imagen podemos ver el nombre que le da el sistema a nuestra imagen, es el que usaremos para cargarla mediante código fuente.




Ok, aquí empieza lo bueno, pintemos:
  • Crearemos una Texture2D que contendrá nuestra imagen tal que así Texture2D t2d = content.load("nombredelaimagen"); como veis la clase content esla encargada de cargar contenido, par el ejemplo definimos t2d global y la cargamos.
  • SpriteBatch, esta clase se encargara de pintar la imagen mediante su método Draw y es un shader sencillo que lleva XNA de serie, lo crearemos así SpriteBatch sb = new SpriteBatch(graphics.GraphicsDevice);
  • Ahora ya estamos listos para pintar, asi que vayamos al metodo Draw donde XNA tiene el thread que se encargara de pintar. Para usar SpriteBatch tenemos que indicárselo a la clase sb.Begin(), pintar, y después decirle que ya hemos terminado sb.End(). Esto es importante, porque de no hacerlo ais no veremos nada.
  • Y para terminar, el método que pinta sb.Draw(t2d, new Rectangle(0,0,800,600), Color.White), bien, como veis tienes 3 parametros en este caso, el primero, la imagen que queremos pintar,el segundo un rectángulo que XNA definira como el espacio en el que se pintara nuestra imagen y por ultimo, un color, que si lo dejamos blanco no afectara a nuestra imagen final.
Y ya tenemos listo el programa.

Aquí os dejo el código fuente con todo el material para el XNA Game Studio Express.

Ejemplo XNA Pintar Imagen

No hay comentarios: