
ayuda moviendo el fondo sdl
Publicado por jordi (7 intervenciones) el 06/07/2013 13:16:14
Tengo un codigo que improvise un poco basandome en el tutorial de lazyfoo para mover el fondo hacia abajo que funciona perfectamente, el problema, es que quiero moverlo hacia arriba y al cambiar la bgY+=10 y apply_surface( bgX , bgY - background->h, background, screen ); lo unico que consigo es que el fondo vaya hacia arriba 2 veces y deje de mostrarse, viendose un fondo blanco.
El problema principal es que no soy muy bueno con los punteros y no entiendo muy bien que significa esto de -> , por lo que me estoy liando bastante.
//The offsets of the background
int bgX = 0, bgY = 0;
//Scroll background
bgY -= 10;
//If the background has gone too far
//w = amplada
//h = altura
if( bgY <= -background->h )
{
//Reset the offset
bgY = 0;
}
/* if (bgY >= 480)
{
bgY=0;
}*/
//Show the background
apply_surface( bgX, bgY, background, screen );
apply_surface( bgX , bgY + background->h, background, screen );
Obviamente, para mover hacia arriba el fondo puedo hacer algo tan facil como:
bgY += 10;
if (bgY >= 480)
{
bgY=0;
}
apply_surface( bgX, bgY, background, screen );
Solo pasa que el fondo no se mueve de forma continua, cuando llega arriba de todo, la imagen empieza desde abajo de golpe y digamos que queda bastante mal.
No copiare todo el codigo porque es muy largo, pero vamos lo que quiero es hacer lo que ensenyan en http://lazyfoo.net/SDL_tutorials/lesson22/index.php pero moviendo el fondo hacia arriba y con otra imagen no tan patetica claro ^^, lo que pasa que no explican absolutamente nada de como hacerlo apenas t.t
El problema principal es que no soy muy bueno con los punteros y no entiendo muy bien que significa esto de -> , por lo que me estoy liando bastante.
//The offsets of the background
int bgX = 0, bgY = 0;
//Scroll background
bgY -= 10;
//If the background has gone too far
//w = amplada
//h = altura
if( bgY <= -background->h )
{
//Reset the offset
bgY = 0;
}
/* if (bgY >= 480)
{
bgY=0;
}*/
//Show the background
apply_surface( bgX, bgY, background, screen );
apply_surface( bgX , bgY + background->h, background, screen );
Obviamente, para mover hacia arriba el fondo puedo hacer algo tan facil como:
bgY += 10;
if (bgY >= 480)
{
bgY=0;
}
apply_surface( bgX, bgY, background, screen );
Solo pasa que el fondo no se mueve de forma continua, cuando llega arriba de todo, la imagen empieza desde abajo de golpe y digamos que queda bastante mal.
No copiare todo el codigo porque es muy largo, pero vamos lo que quiero es hacer lo que ensenyan en http://lazyfoo.net/SDL_tutorials/lesson22/index.php pero moviendo el fondo hacia arriba y con otra imagen no tan patetica claro ^^, lo que pasa que no explican absolutamente nada de como hacerlo apenas t.t
Valora esta pregunta


0