Voici 3 petites fonctions que je t´offre pour faire ce que tu veux (sois tu les utilise comme ça, soit tu récuperes les code si tu veux en refaire d´autres)
Le premiere sert juste a créer un rectangle plus vite (plutot que de créer a chaque fois une structure SDL_Rect)
La deuxieme te permet de blitter une image entiere sur la destination (ce que tu faisais avant)
La troisieme te permet de blitter une partie de l´image source sur la destination. (du pixel x1,y1, au pixel x2,y2, et on colle cela sur l´image dest, au pixel x3,y3)
Je te laisse analyser cela
SDL_Rect Rect(int x,int y,int w,int h) // pour fa
ire un rectangle plus vite
{
SDL_Rect r;
r.x=(short)x;
r.y=(short)y;
r.w=(short)w;
r.h=(short)h;
return r;
}
void Blit(SDL_Surface* source,SDL_Surface* dest,int x3,int y3)
{
SDL_Rect D=Rect(x3,y3,0,0);
SDL_BlitSurface(source,NULL,dest,&D);
}
void Blit(SDL_Surface* source,int x1,int y1,int x2,int y2,SDL_Surface* dest,int x3,int y3)
{
SDL_Rect S=Rect(x1,y1,x2-x1+1,y2-y1+1);
SDL_Rect D=Rect(x3,y3,0,0);
SDL_Rect* pS=&S;
SDL_BlitSurface(source,pS,dest,&D);
}