60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
#ifndef DEF_XSPRITE_H
|
|
#define DEF_XSPRITE_H
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
#include <mutex>
|
|
#include "SDL.h"
|
|
#include "SDL_image.h"
|
|
#include "xElement.h"
|
|
using namespace std;
|
|
|
|
class xSprite : public xElement {
|
|
|
|
public:
|
|
xSprite(); // empty
|
|
xSprite(const int rgba[]); // color sprite
|
|
xSprite(const char *url); // image sprite
|
|
xSprite(SDL_Surface *s); // copy sprite
|
|
~xSprite();
|
|
|
|
// replace surface
|
|
void setSurface(const int rgba[]); // color sprite
|
|
void setSurface(const char *url); // image sprite
|
|
void setSurface(SDL_Surface *t); // copy surface
|
|
|
|
// move the sprite
|
|
// const bool* move(double xSpeed, double ySpeed);
|
|
|
|
// action to apply on collision
|
|
// virtual void onCollide(vector<bool> from, xSprite* by);
|
|
|
|
// get/set sprite type
|
|
string getType();
|
|
void setType(string newtype);
|
|
|
|
// set dimensions
|
|
void dimensions(); // defauts
|
|
void dimensions(SDL_Rect r);
|
|
void dimensions(SDL_Rect r, SDL_Rect clip); // w/ clip
|
|
|
|
// getters
|
|
SDL_Surface *surface();
|
|
SDL_Rect *dst();
|
|
SDL_Rect *src();
|
|
|
|
// implement xElement
|
|
virtual void draw(SDL_Renderer* renderer) override;
|
|
|
|
protected:
|
|
string _type;
|
|
|
|
SDL_Surface* _surface = NULL;
|
|
SDL_Rect _dst;
|
|
SDL_Rect _src;
|
|
|
|
mutex _mutex;
|
|
|
|
};
|
|
|
|
#endif |