#ifndef DEF_XSPRITE_H #define DEF_XSPRITE_H class xSprite{ public: xSprite(xManager *m); // Sprite vide xSprite(xManager *m, const int rgb[]); // Sprite couleur xSprite(xManager *m, const char *url); // Sprite image xSprite(xManager *m, SDL_Texture *t); // Sprite texture ~xSprite(); // Modifications de la texture void setTexture(const int rgb[]); // Sprite couleur void setTexture(const char *url); // Sprite image void setTexture(SDL_Texture *t); // Sprite texture vector move(int x, int y); // Deplace le sprite // Action en cas de collision virtual void onCollide(vector from, xSprite* by); string getType(); // renvoie le type de sprite void setType(string newtype); // modifie le type de sprite void dimensions(); // Dimensions par defaut void dimensions(SDL_Rect r); // Dimensions sortie void dimensions(SDL_Rect r, SDL_Rect clip); // Dimensions in/out virtual void push(string index); // Ajoute a l'affichage void pull(string index); // Retire de l'affichage void pull(); // Retire de l'affichage void update(); // Fait renmonter la mise a jour du manager // GETTERS SDL_Texture *texture(); xManager *manager(); SDL_Rect *dst(); SDL_Rect *src(); protected: string _type; xManager *_manager; SDL_Texture *_texture; SDL_Rect _dst; SDL_Rect _src; // Enregistre le dernier index utilise string _index; // Protection inter-thread mutex _mutex_move; }; #endif