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

62 lines
1.6 KiB
C
Raw Normal View History

2016-03-12 23:22:28 +00:00
#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
2016-03-12 23:22:28 +00:00
~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<int> move(int x, int y); // Deplace le sprite
// Action en cas de collision
virtual void onCollide(vector<bool> from, xSprite* by);
string getType(); // renvoie le type de sprite
void setType(string newtype); // modifie le type de sprite
2016-03-12 23:22:28 +00:00
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
2016-03-12 23:22:28 +00:00
void update(); // Fait renmonter la mise a jour du manager
// GETTERS
SDL_Texture *texture();
xManager *manager();
2016-03-12 23:22:28 +00:00
SDL_Rect *dst();
SDL_Rect *src();
2016-03-12 23:22:28 +00:00
protected:
string _type;
xManager *_manager;
SDL_Texture *_texture;
2016-03-12 23:22:28 +00:00
SDL_Rect _dst;
SDL_Rect _src;
// Enregistre le dernier index utilise
string _index;
// Protection inter-thread
mutex _mutex_move;
2016-03-12 23:22:28 +00:00
};
#endif