27 de noviembre de 2010

[XNA] Creando el Pong (Parte 3)/ Añadiendo texto

Lo primero que vamos a hacer, es insertar los archivos .spritefont que especifican el tipo de fuente que vamos a usar para la puntuación, etc. Para esto, vamos al apartado Content del explorador de soluciones, clic derecho > Add > Existing Item... y elegimos el archivo . spritefont que vamos a usar.
Hecho esto, tenemos que cargar la fuente. Para cargar las distintas fuentes que tenemos hemos creado una variable de tipo SpriteFont para cada una y en el método LoadContent() ponemos:


puntuacion = Content.Load("puntuacion");
campeon = Content.Load("campeon");
victorias = Content.Load("victorias"); 
Donde puntuacion, victorias y campeon son las variables que he creado para  las fuentes.
Una vez esto, solo nos queda escribir lo que queremos en pantalla. Vamos a Draw() y ponemos:

spriteBatch.Begin();
                if (empezar == true)
                    spriteBatch.DrawString(puntuacion, "Jugador 1 | " + puntuacionJ1 + " - " + puntuacionJ2 + " | Jugador 2", new Vector2(GraphicsDevice.Viewport.Width / 2 - 125, 20), Color.White);
                if (empezar == false && final == false)
                    spriteBatch.DrawString(puntuacion, "Pulsa Enter", new Vector2(GraphicsDevice.Viewport.Width / 2 - 50, GraphicsDevice.Viewport.Height / 2 -10), Color.White);
                if (final == true)
                {
                    if (puntuacionJ1 > puntuacionJ2)
                        spriteBatch.DrawString(campeon, "Victoria Jugador 1", new Vector2(GraphicsDevice.Viewport.Width / 2 - 250, 100), Color.White);
                    else
                        spriteBatch.DrawString(campeon, "Victoria Jugador 2", new Vector2(GraphicsDevice.Viewport.Width / 2 - 250, 100), Color.White);

                    spriteBatch.DrawString(victorias, victoriasJ1 + " - " + victoriasJ2, new Vector2(GraphicsDevice.Viewport.Width / 2 - 125, 200), Color.White);
                    spriteBatch.DrawString(puntuacion, "Pulsa Enter", new Vector2(GraphicsDevice.Viewport.Width / 2 - 50, 350), Color.White);
                }
                spriteBatch.End();
Por último, para que la pelota solo se dibuje cuando empezar sea igual a true añadimos dicha condición en el método Draw() de la clase Pelota.cs :
if((Game as Pong).empezar == true)
                (Game as Pong).spriteBatch.Draw(textura, posicion, Color.White);
Bueno, pues ya tenemos nuestro Pong. Aquí os dejo el código. (Descargar)
Si tenéis alguna duda o se me ha pasado algo dejadme un comentario y lo arreglo.

No hay comentarios:

Publicar un comentario