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) :
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).
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 :
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part SDL_Rect monRectangleSDL;
Donc en code ça me donnerais un truc du genre :
Ici j'ai donc si je ne m'abuse un rectangle de la taille de mon sprite que je veux afficher.
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.
Et pour la suite je ne comprends pas ce que je dois en faire.
Initialiser SDL_SetClipRect !
et ensuite je ne comprends pas ce que je dois faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SDL_SetClipRect(maSurface, &monRectangleSDL);
Merci de votre aide !
Partager