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 original
void 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 original
superficie=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 original
SDL_BlitSurface(superficie,NULL,screen,&posSuperficie);
veo 3 veces la palabra "jugador".
el problema creo que viene de:
Código C++:
Ver original
SDL_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