Debemos incluir el fichero DLL llamado SDL_ttf.DLL en la carpeta del ejecutable de nuestro programa, así como el fichero TTF correspondiente a cada tipo de letra que queramos usar.
Tenemos que declarar un nuevo dato que será nuestro tipo de letra, del tipo genérico "IntPtr":
IntPtr tipoDeLetra;
También tenemos que inicializar SdlTtf después de la inicialización básica de SDL:
SdlTtf.TTF_Init();
Luego preparamos el tipo de letra que queremos usar, indicando a partir de qué fichero TTF y en qué tamaño:
// Un tipo de letra, en tamano 18
tipoDeLetra = SdlTtf.TTF_OpenFont("FreeSansBold.ttf", 18);
if (tipoDeLetra == IntPtr.Zero) {
System.Console.WriteLine("Tipo de letra inexistente: FreeSansBold.ttf!");
Environment.Exit(5);
}
A continuación, podemos crear una imagen a partir de una frase:
// Y creamos una imagen a partir de ese texto
Sdl.SDL_Color colorAzulIntenso = new Sdl.SDL_Color(50, 50, 255);
string texto = "Texto de ejemplo";
IntPtr textoComoImagen = SdlTtf.TTF_RenderText_Solid(
tipoDeLetra, texto, colorAzulIntenso);
if (textoComoImagen == IntPtr.Zero) {
System.Console.WriteLine("No se puedo renderizar el texto");
Environment.Exit(6);
}
Y podríamos dibujar esa imagen en cualquier parte de la pantalla, como cualquier otra imagen:
// Escribimos el texto, como imagen
origen = new Sdl.SDL_Rect(0,0,anchoPantalla,altoPantalla);
dest = new Sdl.SDL_Rect(200,100,anchoPantalla,altoPantalla);
Sdl.SDL_BlitSurface(textoComoImagen, ref origen,
pantallaOculta, ref dest);
Como esta forma de trabajar puede resultar engorrosa, dentro de poco lo mejoraremos, creando una clase "Fuente" que nos oculte todos estos detalles y nos permita escribir texto de forma sencilla.
No hay comentarios:
Publicar un comentario