64 lines
1.2 KiB
C
64 lines
1.2 KiB
C
|
#ifndef DEF_SPRITE_H
|
||
|
|
||
|
#define DEF_SPRITE_H
|
||
|
|
||
|
/* [LIBS] Internes
|
||
|
=========================================================*/
|
||
|
#include "SDL.h"
|
||
|
#include "SDL_image.h"
|
||
|
#include <vector>
|
||
|
|
||
|
/* [LIBS] Externes
|
||
|
=========================================================*/
|
||
|
|
||
|
|
||
|
/* [NS] Namespaces
|
||
|
=========================================================*/
|
||
|
using namespace std;
|
||
|
|
||
|
|
||
|
class Sprite{
|
||
|
|
||
|
public:
|
||
|
Sprite(SDL_Rect r);
|
||
|
Sprite(const int rgb[], SDL_Rect r);
|
||
|
Sprite(const char url[], SDL_Rect r, SDL_Rect clip);
|
||
|
|
||
|
void setImage(const char url[], int ox=0, int oy=0);
|
||
|
|
||
|
// ~Sprite();
|
||
|
void appendTo(SDL_Surface *dest);
|
||
|
|
||
|
// GETTERS
|
||
|
SDL_Surface *surface();
|
||
|
|
||
|
private:
|
||
|
SDL_Surface *_surface;
|
||
|
SDL_Rect _rect;
|
||
|
SDL_Rect _origin;
|
||
|
|
||
|
};
|
||
|
|
||
|
/* [AGGR] Groupement de Sprite
|
||
|
=========================================================*/
|
||
|
class SpriteGroup{
|
||
|
|
||
|
public:
|
||
|
SpriteGroup();
|
||
|
void add(Sprite *s);
|
||
|
void remove(Sprite *s);
|
||
|
Sprite* get(int i);
|
||
|
void appendTo(SDL_Surface *dest);
|
||
|
|
||
|
private:
|
||
|
vector<Sprite*> _sprites;
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
/* [BODY] Inclusion du corps
|
||
|
=========================================================*/
|
||
|
#include "Sprite.cpp"
|
||
|
|
||
|
|
||
|
#endif
|