domingo, 1 de abril de 2012

Dibujando texto en la pantalla

Carrera de XNA – Capítulo 2 - Artículo 4

 

Introducción

En este artículo veremos un punto clave para la creación de cualquier juego: Dibujar texto (cadenas de caracteres) en la pantalla, utilizando las fuentes disponibles. Veremos la clase principal involucrada en la creación de textos, así como la forma de configurarla mediante un archivo de contenido.

 

SpriteFont

Esta clase representa una Fuente o Tipografía a nivel de código. Será necesario crear una instancia de la misma a través de un archivo de tipo XML con la configuración del tipo de letra, tamaño y características (negrita, cursiva, etc.).

 

Creando un SpriteFont

image 

El Archivo SpriteFont

La estructura del archivo es bastante sencilla, como podremos ver a continuación tiene campos que son clave para la definición de la fuente:

  • Size: Tamaño de la fuente en puntos
  • Font Name: Nombre de la fuente (ver Fuentes Disponibles)
  • Spacing: Espaciado entre caracteres
  • Style: Bold (Negrita), Regular (Común) e Italic (cursiva)

Los campos restantes del archivo serán vistos en profundidad en el nivel Intermedio de la carrera.

 

Creando un archivo SpriteFont

Para añadir un archivo de tipo SpriteFont, debemos ir a nuestro Proyecto de contenido hacer click derecho en el mismo, para luego seleccionar la opción Agregar, Nuevo Elemento.

image

Luego debemos elegir de la lista de elementos disponibles el tipo Sprite Font y configurar un nombre para el mismo.

image

Se creará el archivo dentro del proyecto de contenido. Para finalizar podemos cambiar algunas propiedades como el Size y Style, a modo de ejemplo:

image

 

Fuentes Disponibles

Es importante contar con fuentes licenciadas o bien gratuitas. XNA Game Studio nos provee un pack de 15 fuentes para descarga inmediata (http://create.msdn.com/en-US/education/catalog/utility/font_pack). XNA se encarga de empaquetar la representación de cada carácter en un archivo de tipo XNB al momento de compilar, por lo cual no es necesario que la persona que instale nuestro juego tenga la fuente instalada en su sistema.

También podemos encontrar mas fuentes de Microsoft licenciadas de manera gratuita en: http://msdn.microsoft.com/en-us/library/ms746705.aspx.

image

Dibujando con el SpriteFont

Una vez definida nuestra fuente a través del archivo SpriteFont e inicializada en nuestro método LoadContent podemos hacer uso de la misma en el método Draw de la siguiente manera:

image

Analizando los parámetros del método DrawString podemos ver:

  • textoFont: Es nuestra instancia de SpriteFont, define la tipografía a utilizar como vimos previamente.
  • “Prueba”: Es el texto a dibujar en pantalla, en este caso es fijo pero puede ser una variable (como el puntaje).
  •  new Vector2(0,0) : Estamos indicando la posición en X,Y para colocar el inicio de nuestro texto.
  • Color.Orange: Color para dibujar el texto en pantalla. En este caso, naranja.

image

9 comentarios:

  1. Disculpa, no se si me allá equivocado o no se pero me da un error en GraphicsDevice.Clear(Cloro.Black);
    Aqui esta la captura de el problema, espero me pueda ayudar :/

    http://25.media.tumblr.com/tumblr_m5s2spbs5Q1qm340to1_1280.jpg

    ResponderEliminar
  2. Te está faltando algo en la parte de LoadContent! Si quieres, puede subir un zip con el código a SkyDrive y enviarlo!

    ResponderEliminar
  3. Fuencionando a la perfeccion..... :)

    ResponderEliminar
  4. Este si me funciono jeje... Ahora voy entendiendo.
    Perfecto Gracias

    ResponderEliminar
  5. Pusiste Cloro en vez de Color.

    ResponderEliminar
  6. Hola.
    A mí no me aparece el archivo SpriteFont para poder agregarlo, ¿Qué puedo hacer?

    Gracias!

    ResponderEliminar