Hola, estoy haciendo un juego de lucha y quisiera hacer un scroll con una imagen de fondo mas grande que la pantalla con SDL y c
El problema es que no me deja hacer el scroll hacia la derecha y solo funciona hacia la izquierda pero dejandro rastro, hice las pruebas para que el fondo se moviera solo sin mover el muñeco pero no hay manera.
Dejo el codigo para ver si alguien me puede echar una mano y decirque que es lo que hago mal:
Esta son las funciones que uso en un archivo aparte util.c
//******************************************************************************
//Imprime el fondo
//******************************************************************************
void imprimir_fondo (SDL_Surface *fondo, SDL_Surface *screen, SDL_Rect * dest)
{
SDL_BlitSurface(fondo, NULL, screen, dest);
}
//******************************************************************************
//Scroll del fondo
//******************************************************************************
void scroll_fondo (SDL_Rect * dest)
{
dest->x--;
}
//******************************************************************************
//Inicia fondo
//******************************************************************************
void inicia_fondo (SDL_Surface *fondo, SDL_Surface *screen, SDL_Rect * dest)
{
dest->x = 0;
dest->y = 0;
dest->w = fondo->w;
dest->h = fondo->h;
}
Y estas son las llamadas a las funciones en el programa principal:
inicia_fondo (fondo, screen, &dest);
imprimir_fondo (fondo, screen, &dest);
while (procesar_eventos ())
{
scroll_fondo (&dest);
imprimir_fondo (fondo, screen, &dest);
actor_actualizar (&actor);
actor_imprimir (&actor, screen, &rect);
SDL_Flip (screen);
SDL_UpdateRect (screen,0,0,0,0);
SDL_Delay (10);
}
Si pogo en la funcion actualizar scroll dest->x++ me funciona pero es cuando sale el scroll hacia la izquierda, y otra cosa que he visto es que si uso estos diferenets modulos no me deja inicializar la imagen de fondo con los parametros x,y con valores negativos :S
Muchas gracias de antemano!
Un saludo