Bonjour à tous.

Je me lance dans un petit jeu vidéo tout simple mais pour l'instant j'explore/étudie/teste différents codes pour bien assimiler les possibilités de la SDL.

Je suis donc le cour de @Alexandre Laurent, et je me vois bloqué à la partie "Afficher son 1er Sprite.

Je m'explique.

J'ai téléchargé (pour m’entraîner), un sprite de mario (mariouniverse.com), que j'ai bidouillé un chouilla pour le rendre plus simple (6 mario : 3 de mario qui marche vers la gauche et 3 autres vers la droite) :

Nom : Sprite_Mario.gif
Affichages : 405
Taille : 916 octets

En suivant le tuto sur la SDL2, j'ai réussi à afficher ma 1ere sprite (image découpée au bon endroit pour afficher une petite partie de mon mario marchant vers la gauche).

Nom : Sans titre-1.gif
Affichages : 289
Taille : 5,9 Ko

Maintenant, j'aimerais créer l'animation (afficher les autres états de mon mario donc).

Si j'ai bien compris (ce dont je ne suis pas sur à 100%, d'ou mon post), il faut utiliser le paramètre clip_rect, qui est donc un objet SDL_Rect, dans un objet SDL_Surface !

Pour un débutant c'est pas simple à piger au début xD.

Donc de ce que je comprends en gros :

il me faut créer pour commencer un SDL_Rect :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SDL_Rect monRectangleSDL;
ensuite à partir de lui je lui définit une taille et, si j'ai bien compris, cette taille sera donc une sorte de masque ? masque qui va juste afficher la partie de mon rectangle ?

Donc en code ça me donnerais un truc du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
monRectangleSDL.x = monSprite.w / 6; // Définit la position de départ de mon rectangle en x.
monRectangleSDL.y = 0; // Définit la position en y de mon rectangle.
monRectandleSDL.w = monSprite.w / 6; // Définit la taille de mon rectangle (comme 6 images sur le sprite on divise la taille par 6).
monRectangleSDL.h = monSprite.h; // Définit la taille du rectangle.
Ici j'ai donc si je ne m'abuse un rectangle de la taille de mon sprite que je veux afficher.

Et pour la suite je ne comprends pas ce que je dois en faire.

Initialiser SDL_SetClipRect !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SDL_SetClipRect(maSurface, &monRectangleSDL);
et ensuite je ne comprends pas ce que je dois faire.

Merci de votre aide !