Hey Pocolo !
Merci de ton aide, j'ai enfin trouvé.
En fait, il fallait prendre toute la condition que j'ai mis avant le switch, et la mettre juste après chaque déplacement. Et de suite après la condition, je mets le déplacement contraire pour "l'éjecter" du rectangle, pour qu'il ne soit plus dans le rectangle !
En gros, j'te montre pour un déplacement :
case SDLK_RIGHT:
carre.x++;
if(!(carre.x + carre.w <= positionmur.x || carre.x >= positionmur.x + positionmur.w || carre.y + carre.h <= positionmur.y || carre.y >= positionmur.y + positionmur.h))
carre.x--;
break;
J'ai donc fait ça pour les 4 déplacements, tout simplement. Le fait d'ajouter 1 rejoint ton explication, lorsque je mets le déplacement contraire lorsqu'il y a collision.
Mais je te remercie !