• ### Announcements

#### Archived

This topic is now archived and is closed to further replies.

# 2D Game Animation?

## Recommended Posts

tuxx    127
For my first 2D game, I''ve implemented a basic sprite class, and it looks like this:
class CSprite
{
public:
CSprite();
CSprite(char *filename);
~CSprite();

void move(int x, int y);

friend class CVideo;

private:
SDL_Surface *_sprite;
SDL_Rect _pos;
};

Pretty basic, eh? Now I have a video class (CVideo) that is responsible for blitting CSprites:
class CVideo
{
public:
CVideo();
~CVideo();
int init(int width, int height, int bit_depth);
void kill();
void blit(CSprite *tsprite);
void start_blit();
void end_blit();

private:
int _width;
int _height;
int _bit_depth;
SDL_Surface *_screen;
bool _locked;
bool _must_lock;
};

Still pretty basic. But it''s about to get a lot more complex (unnecessarily, I hope). What I wanted to do was to be able to have a templated sprite (i.e., an image with a grid of frames that make up the animations) and each frame in the template would have a frame number. Then when I would want to display an animation, I would make an array of integers that express the order of the frames I want to blit in order to show an animation. I would pass that array to a function, which would store it in some sort of list. The blitter function would read the list and render the corresponding frame, and then move onto the next element on the list. It''s getting pretty tough to code that, so I''m wondering if there is an easier way to do animated sprites and templates. I''ve gotten so far as to be able to break down an image into frames, but I''m stuck at the part where I store the stuff in a list (mostly because I have no clue how to work STL in order to use their built-in list). So does anyone know of a simpler way to do this stuff? Or help me do it the current way I''m doing it? I''ll post more code if you need me to. Thanks!