Dev - C++ - MINIJUEGO (PROBLEMA CON BITMAPS!)

 
Vista:
Imágen de perfil de Kevin

MINIJUEGO (PROBLEMA CON BITMAPS!)

Publicado por Kevin (17 intervenciones) el 21/07/2015 13:12:01
Hola a todos! para el interés de algunos sigo trabajando en el juego que he enviado en anteriores post y la verdad que lo tengo muy avanzado me quedan cuatro detalles y lo finalizare por ahora tan solo ocupa 13.5MB bastante contento con los resultados. Bueno el problema que me surge ahora es al incorporar el "sueldo" o puntos como querais llamarlo del juego, cuando lo inserto directamente en consola con:

void sueldobase(int su){
textprintf(screen,font,50,60,palette_color[15],"%d",Sueldo);
}

cuando la función es así no me crea ningún tipo de problema ni me ralentiza el juego, ahora bien mi idea es como estoy haciendo hasta el momento con los rangos, logros...etc es insertar imagenes, bien busque información acerca de librerías que cambiaran el tamaño y la fuente de los printf directamente en la screen y como no era de sorprender no apareció nada de lo que buscaba así que como fui leyendo en otros post de gente que tenia el mismo problema al insertar la puntuación en su juego vi que tenias que hacer imagenes para cada puntuación, es decir, imagen para "10 p", imagen para "20 p" y ir cargandolas en el buffer tal y como hice a continuación...


void sueldobase(BITMAP* buffer){

//DOLARES
BITMAP *dolar0=load_bitmap("sueldo/dolar0.bmp",NULL);
BITMAP *dolar1=load_bitmap("sueldo/dolar1.bmp",NULL);
BITMAP *dolar2=load_bitmap("sueldo/dolar2.bmp",NULL);
BITMAP *dolar3=load_bitmap("sueldo/dolar3.bmp",NULL);
BITMAP *dolar4=load_bitmap("sueldo/dolar4.bmp",NULL);
BITMAP *dolar5=load_bitmap("sueldo/dolar5.bmp",NULL);
BITMAP *dolar6=load_bitmap("sueldo/dolar6.bmp",NULL);
BITMAP *dolar7=load_bitmap("sueldo/dolar7.bmp",NULL);
BITMAP *dolar8=load_bitmap("sueldo/dolar8.bmp",NULL);
BITMAP *dolar9=load_bitmap("sueldo/dolar9.bmp",NULL);
BITMAP *dolar10=load_bitmap("sueldo/dolar10.bmp",NULL);

if(Sueldo==0){
masked_blit(dolar0,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==10){
masked_blit(dolar1,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==20){
masked_blit(dolar2,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==30){
masked_blit(dolar3,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==40){
masked_blit(dolar4,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==50){
masked_blit(dolar5,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==60){
masked_blit(dolar6,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==70){
masked_blit(dolar7,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==80){
masked_blit(dolar8,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==90){
masked_blit(dolar9,buffer, 0 , 0 , 38 , 50, 62,31);
}else if(Sueldo==100){
masked_blit(dolar10,buffer, 0 , 0 , 38 , 50, 62,31);
}



El codigo es mucho más largo lo que ya solo insertando este trozo de imagenes se me ralentiza un monton el juego y se me bloquea al rato de estar jugando, es cierto que cuantas menos imagenes cargo más tarde se bloquea pero al fin y al cabo se acaba bloqueando. Esto lo he insertado fuera del int main. Después de muchas pruebas he llegado a la conclusión que el problema esta en el cargado de la imagen, pero alguien me puede decir cual es el problema realmente? y si hay alguna solución alternativa o otro metodo de llevar a cabo lo que pido?


Agradecería muchísimo este pequeño empujon, un saludo muy grande!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de vangodp
Val: 73
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

MINIJUEGO (PROBLEMA CON BITMAPS!)

Publicado por vangodp (287 intervenciones) el 21/07/2015 17:31:59
al menos diga que es lo que estas usando ¬¬
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kevin

MINIJUEGO (PROBLEMA CON BITMAPS!)

Publicado por Kevin (17 intervenciones) el 22/07/2015 16:07:27
Ya esta arreglado, el problema era que cargaba todas las imágenes de golpe en el buffer y luego implementaba la condición para cada imagen y por ello el juego se ralentizaba mucho, una vez introducida cada carga de imagen del buffer dentro de su condición el juego a vuelto a la normalidad por si alguno se encuentra con el mismo problema que yo que sepa que cada condición debe estar con su carga de imagen, no carguéis todas las imágenes fuera como he enviado en el post y luego implementéis las condiciones por que hará que el programa se acabe bloqueando. Un saludo en breves subiré vídeo a ver que opináis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de vangodp
Val: 73
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

MINIJUEGO (PROBLEMA CON BITMAPS!)

Publicado por vangodp (287 intervenciones) el 22/07/2015 22:23:17
Es que aun no se que librería estas utilizando, pero bueno... Solo te diré que yo no utilizo imágenes, si no que texturas, la diferencia reside que las imágenes se cargan en la memoria ram, esa debería estar para otros tipos de cálculos, mientras las texturas se cargan en la memoria de la tarjeta gráfica que es más rápida que la ram normalmente, y esta mejor preparada para mover gráficos las gpus que las cpus.
Puede leer aquí que por ejemplo en SDL, las "surfaces" se renderizan por software, mientras las surfaces se renderizan por hardware. http://stackoverflow.com/questions/21392755/difference-between-surface-and-texture-sdl-general
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar