Problema con TTF

Tratamos sobre el manejo de APIs frecuentemente utilizadas en el desarrollo de videojuegos, como SDL, pygame o SFML.

Problema con TTF

Notapor migueleitorone » Mié Mar 02, 2011 8:08 pm

Buenas noches a todos, tengo un problemilla mostrando un texto por pantalla, aver si me podeis hechar una mano:
Imagen
Os cuento:
El circulo rojo es una cadena de espacios en blanco:
Código: Seleccionar todo
int limite = 20;
char * cadena = new char[limite];
for(int i=0; i<limite; i++) cadena[i]=' ';

SDL_Surface * texto = TTF_RenderText_Blended(fuente, cadena, color);
SDL_BlitSurface(texto, NULL, screen, &rectTexto);


Por que me salen todos esos caracteres despues de la cadena(los del circulo verde)???

muchas gracias de antemano :D
migueleitorone
 
Mensajes: 88
Registrado: Mié Ago 18, 2010 2:59 pm
Ubicación: Barcelona, España

Re: Problema con TTF

Notapor migueleitorone » Jue Mar 03, 2011 12:35 am

dandole vueltas ha esto he llegado a la solucion, por si a alguien le sirve, me faltaba marcar el final de frase con '\0', asi quedaria el codigo:
Código: Seleccionar todo
int limite = 20;
char * cadena = new char[limite];
for(int i=0; i<limite; i++) cadena[i]=' ';
cadena[limite-1] = '\0';


SDL_Surface * texto = TTF_RenderText_Blended(fuente, cadena, color);
SDL_BlitSurface(texto, NULL, screen, &rectTexto);
migueleitorone
 
Mensajes: 88
Registrado: Mié Ago 18, 2010 2:59 pm
Ubicación: Barcelona, España

Re: Problema con TTF

Notapor Juanxo » Jue Mar 03, 2011 12:02 pm

ojo, tal y como lo estás haciendo ahora tienes una cadena de 19 caracteres máximo, en vez de 20 como has establecido en límite.
En C, las cadenas tienen que terminar con el caracter nulo "\0", por eso tienes que reservar siempre un caracter más de los que quieras usar. Así, tendrias que reservar 21 caracteres en el array (limite + 1) para poder meter 20 caracteres a tu cadena
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: Problema con TTF

Notapor migueleitorone » Jue Mar 03, 2011 10:39 pm

cierto, no lo habia pensado, de todas maneras como es para un campo de texto no me afecta tener uno mas o uno menos, era mas que nada para que no se saliera.
gracias juanxo :)
migueleitorone
 
Mensajes: 88
Registrado: Mié Ago 18, 2010 2:59 pm
Ubicación: Barcelona, España


Volver a Sobre las bibliotecas multimedia

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron