Buenas tardes a todos,
tengo una pequeña funcion que me permite mostrar en pantalla el estado de un juego, pegando superficies en pantalla.
Lo que deberia de hacer( de momento) es:
-pegar una superficie a la derecha y escribir "jugador"
-pegar una superficie a la izquierda y escribir "jugador"
Código C++:
Ver originalvoid Estado::mostrarEstado(SDL_Surface* screen){
TTF_Init();
TTF_Font* fuente = TTF_OpenFont("comic.ttf", 10);
TTF_Font* zonaTextoFuente = TTF_OpenFont("comic.ttf", 15);
SDL_Color blanco = {255, 255, 255};
SDL_Rect posSuperficie;
SDL_Surface* superficie=NULL;
for(int i=0;i<2;i++)
{
//pego los menus
SDL_BlitSurface(m_menus[i].getMenu(),NULL,screen,&(m_menus[i].getPosMenu()));
posSuperficie.x=m_menus[i].getPosMenu().x+50;
posSuperficie.y=10;
string cadena="jugador";
//superficie=TTF_RenderText_Blended(fuente,cadena.c_str(),blanco);
//SDL_BlitSurface(superficie,NULL,screen,&posSuperficie);
}
TTF_CloseFont(fuente);
TTF_CloseFont(zonaTextoFuente);
TTF_Quit();
}
esta función es llamada desde el bucle principal del main.
mi código me permite mostrar en pantalla 2 menús
pero en el momento en el que activo, solamente:
Código C++:
Ver originalsuperficie=TTF_RenderText_Blended(fuente,cadena.c_str(),blanco);
los menus desaparecen y en la pantalla veo 1 vez la palabra "jugador"
si activo tambien
Código C++:
Ver originalSDL_BlitSurface(superficie,NULL,screen,&posSuperficie);
veo 3 veces la palabra "jugador".
el problema creo que viene de:
Código C++:
Ver originalSDL_BlitSurface(m_menus[i].getMenu(),NULL,screen,&(m_menus[i].getPosMenu()));
porque si lo pongo en comentario, veo 2 veces la palabra "jugador".
pero lógicamente los menús no aparecen.
que es lo que hago mal?
como hago para que salgan los menus y las palabras ? :s
gracias
salu2