Asi es como son las barritas:

Asi es como quedan despues de ejecutarse el evento para mover sprites:

pueden ver que se alargan, yo creo que es porque no actualizo la pantalla, el problema es que no se cual es el mejor metodo para hacerlo, estuve probando con varios pero no llegue a nada
les dejo las partes del codigo que tienen que ver con este problema
Este es el metodo para mover las barras:
- Código: Seleccionar todo
void CBarra::movimiento(int y,SDL_Surface *screen)
{
SDL_Rect dest, rectV;
int color = 0;
dest.x = x;
dest.y = gety();
dest.w = sprite[cont].img->w;
dest.h = sprite[cont].img->h;
SDL_FillRect(screen,&dest,NULL);
//SE ACTUALIZA AL FRAME CON SU NUEVA POSICION
dest.x = x;
dest.y = y;
dest.w = sprite[cont].img->w;
dest.h = sprite[cont].img->h;
color = SDL_MapRGB(sprite[cont].img->format,0,0,0);
/* SDL_SetColorKey(sprite[cont].img,SDL_SRCCOLORKEY|SDL_RLEACCEL,color);*/
SDL_BlitSurface(sprite[cont].img, NULL, screen, &dest);
SDL_UpdateRect(screen,dest.x,dest.y,dest.w,dest.h);
}
};
Desde aca se llama al metodo que mueve a las barras:
- Código: Seleccionar todo
while(SDL_PollEvent(&evento))
{
if(key[SDLK_UP])
{
if(barra1.gety() > 0)
{
SDL_FillRect(screen,NULL,NULL);
y = barra1.gety()-8;
barra1.sety(y);
barra1.movimiento(y,screen);
barra2.movimiento(barra2.gety(),screen);
red.movimiento(red.gety(),screen);
pel.movimiento(pel.gety(),screen);
}
}
Espero que me puedan solucinar el problema
SALUDOS