Hola a todos
Bienvenidos a un nuevo capitulo de como crear tu propio game engine desde 0...
El capítulo de hoy tratará sobre las fuentes bitmapeadas. Hasta ahora habíamos pintado textos renderizados y cumplen su función correctamente pero cuando queremos hacer un juego nos interesa tener fuentes más personalizadas y ambientadas en nuestro proyecto.
Las fuentes bitmapeadas las he enfocado como un caso concreto de gráficos empaquetados, de forma que los cambios en el código son menores a los que en un principio cabria esperar. La carga de la fuente ya está implementada gracias a los gráficos empaquetados así que solo queda el pintado como tal, modificando las funcionalidades del modulo FontManager.
El código modificado es poco , como se puede ver:
Dentro del FontManager:
void FontManager::Print(char font[],int x , int y, char text[])
{
int i, w, width = 0 ;
if( font == "SYSTEM" )
glQuickText::printfAt((double)x,(double)y, 0.0f ,1.0f , text );
else
{
//Fuente bitmapeada
width = 0;
w = TextureManager::singleton().GetWidth(font,1);
//cout << "Ancho de caracter: " << w << "\n";
for ( i = 0 ; i < strlen (text); ++i)
{
if( text[i] != ' ' )
Core::singleton().DrawSprite(x+width ,y,font,text[i]+1);
width += w;
}
}
}
Dentro del código del juego:
void draw ()
{
char cad[32];
//Pintado de elementos gráficos del juego
Core::singleton().DrawSprite(xbola,ybola,"PACK",1);
Core::singleton().DrawSprite(xpala1,ypala1,"PACK",2);
Core::singleton().DrawSprite(xpala2,ypala2,"PACK",2);
//Pintado de textos
sprintf(cad,"%d",point1);
Core::singleton().DrawText("SYSTEM",100,400,cad);
sprintf(cad,"%d",point2);
Core::singleton().DrawText("SYSTEM",400,400,cad);
Core::singleton().DrawText("FONT",250,450,"PING PONG");
}
El gráfico usado como fuente bitmapeada es el siguiente:
Y como queda la pantalla de juego es la siguiente imagen:
En esta ocasión no he hecho video ya que seria identico al video anterior.
Si quereis bajaros el código podeis hacerlo desde la zona de descargas.(capitulo 16)
Espero que hayaís aprendido y lo hagaís pasado bien.
Nos vemos.
0 comentarios :
Publicar un comentario