lab.cpp/SDL#4/xSDL/xSpriteAnimation.h

38 lines
970 B
C++

#ifndef DEF_XSPRITEANIMATION_H
#define DEF_XSPRITEANIMATION_H
class xSpriteAnimation : public xSprite{
public:
xSpriteAnimation(xManager *manager, const char *url, SDL_Rect dest); // Spritesheet avec taille de chaque sprite
xSpriteAnimation(xManager *manager, SDL_Texture *t, SDL_Rect dest); // Spritesheet avec taille de chaque sprite
~xSpriteAnimation();
void addFrame(SDL_Rect clip); // Ajoute une frame en fonction des coordonnees
void clear(); // Supprime les frames
void push(string index); // Ajoute au rendu
// Gestion de l'animation
void start(int t, int flags=SPRITE_ANIM_ONCE);
void stop();
protected:
// Contiendra les frames
vector<SDL_Rect> _frames;
// Pour rappel animation
int _timeout;
int _flags;
// Contiendra le thread de l'animation
thread *_animation;
friend void xSpriteAnimationProcess(xSpriteAnimation *xSA, int t, int flags );
};
#endif