Lunes 9 de Diciembre de 2024, 12:22
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Videojuegos
»
Allegro
»
Problema: Sale una mancha.
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Problema: Sale una mancha. (Leído 2137 veces)
CarloX
Nuevo Miembro
Mensajes: 9
Problema: Sale una mancha.
«
en:
Lunes 15 de Septiembre de 2008, 03:44 »
0
Esto es algo que me ha pasado muchas veces y no le daba importancia
, hasta ahora
. Hago un programa en allegro muy simple, de mover un objeto con las teclas, el codigo es algo asi:
Código: Text
if (Direccion == ARRIBA){
for( int i=0; i<=2; i++){
y -= 5;
if (i == 0){
blit(buff,screen, 0, 0, x,y+5,buff->w,buff->h);
blit(screen,buff,x,y,0,0,buff->w,buff->h);
draw_sprite(screen, up1, x, y);
}
if (i == 1){
blit(buff,screen, 0, 0, x,y+5,buff->w,buff->h);
blit(screen,buff,x,y,0,0,buff->w,buff->h);
draw_sprite(screen, up2, x, y);
}
if (i == 2){
blit(buff,screen, 0, 0, x,y+5,buff->w,buff->h);
blit(screen,buff,x,y,0,0,buff->w,buff->h);
draw_sprite(screen, up0, x, y);
}
rest(50);
}
}
Obviamente eso no es el programa entero sino un parte de la funcion y todas las variables han sido definidas bien, incluso el programa me resulta bien, pero me parte con una mancha al medio. Antes me haia pasado algo igual, pero la mancha se formaba en cualquier parte y estaba usando datafiles(en este uso .bmp).
Ojala me pudieran dar una solucion se las agradeceria.
->
Tweet
BlackWind
Miembro activo
Mensajes: 89
Re: Problema: Sale una mancha.
«
Respuesta #1 en:
Miércoles 17 de Septiembre de 2008, 20:43 »
0
no tengo aqui a la mano los proyectos que hice con allegro, pero si no me equivoco, estas rendereando mal.
tu haces esto:
blit(buff,screen, 0, 0, x,y+5,buff->w,buff->h);
blit(screen,buff,x,y,0,0,buff->w,buff->h);
draw_sprite(screen, up1, x, y);
prueba haciendolo asi:
//dibuja tu imagen al buffer
draw_sprite(buffer, up1, x, y);
//dibuja el buffer en la pantalla (screen)
blit(buffer, screen, 0,0,0,0,640,480); // reemplaza esas coordenadas por las tuyas
// libera el contenido del buffer
clear_bitmap(buffer);
Si eso no te funciona, sube una imagen de como te sale a tu manera, y como te sale con la forma que propuse. Para tener una mejor idea de cual es el problema entonces.
saludos,
CarloX
Nuevo Miembro
Mensajes: 9
Re: Problema: Sale una mancha.
«
Respuesta #2 en:
Domingo 28 de Septiembre de 2008, 21:51 »
0
al final esa parte la deje asi:
Código: Text
blit(map, buffer, 0, 0, 0, 0, map->w, map->h);
if (i == 0 || i == 2)draw_sprite(buffer, left1, x, y);
if (i == 1 || i == 3)draw_sprite(buffer, left2, x, y);
if (i == 4) draw_sprite(buffer, left0, x, y);
blit(buffer, screen, 0,0,0,0,640,480);
clear_bitmap(buffer);
*le agregue blit(map, buffer, 0, 0, 0, 0, map->w, map->h); para que me mantenga dibujado el mapa
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Videojuegos
»
Allegro
»
Problema: Sale una mancha.