Non mais pour les rectangles c´est pas la peine d´en faire 3 si 3 images ont 3 coord différentes, toi tu fais ca :
---
SDL_Rect rect1, rect2, rect3;
. ..
rect1.x=25;
rect1.y=200;
SDL_BlitSurface(masurface, NULL, screen, &rect1);
rect2.x=42;
rect2.y=127;
SDL_BlitSurface(masurface, NULL, screen, &rect2);
rect3.x=72;
rect3.y=89;
SDL_BlitSurface(masurface, NULL, screen, &rect3);
---
Mais meme si chaque image a une coordonnée différent, tu peux réutiliser ton rectangle !
---
SDL_Rect rect;
. ..
rect.x=25;
rect.y=200;
SDL_BlitSurface(masurface, NULL, screen, &rect);
rect.x=42;
rect.y=127;
SDL_BlitSurface(masurface, NULL, screen, &rect);
rect.x=72;
rect.y=89;
SDL_BlitSurface(masurface, NULL, screen, &rect);
---
La différence : Occupe 3x moins de place en mémoire.
Désolé pour le bug que je t´ai refilé mais la partie init etait pas le truc le plus important à corriger ( mais il etait moche quand meme).
Maintenant, débrouille toi.
Petites piste :
->Ta boucle de jeu est moche
->Teste plutot tes touches avec SDL_GetKeyState()
->Met une fonction de libération de mémoire au quit
->Donne des noms explicites aux variables et aux fonctions !
Voilà, bonne chance !