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!
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
0