SDL Sprite Class in C++

Posted on by Kenny Cason
tags = [ 2d, animation, c++, class, game, graphics, library, programming, sdl, sprite ]

This is a simple Sprite class that I use for game development in C++ using SDL (www.libsdl.org). Features include sprite animation, rotation, stretching, transparencies, and other commonly used sprite functions.

I hope this is somewhat useful. The source is available and should be fairly simple to work with. Feel free to modify it however you want. please comment about any bugs are suggestions that you have. Thanks.

Clone from GitHub

SDL Sprite C++

To view a demo of some of the Sprites classes features, and have access to some sample Bitmap images used with the Sprite library, download the following zip file. It also contains the project settings that I used in Dev C++ and SDL 1.2.12 to compile.

All examples use these sprites
SDL Sprite C++ SDL Sprite C++

Demo using special effects

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Initialize SDL, etc
...
...
Sprite* s1 = new Sprite("sprites/samus_normal_run.bmp",10,60); // load a BMP that contains 10 frames
                                                // set the animation speed to 60 milliseconds
// set RGB(255,0,255) as transparent, rotate 180 degrees, flip horizontal and reverse animation
s1->setTransparency(255,0,255)->rotate180()->flipHorizontal()->reverseAnimation();
// etc
...
...

// Main loop
// clear background to black, RGB(0,0,0)
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 0, 0));
// animate and draw the sprite
s1->animate()->draw(screen,0,0);
SDL_Flip(screen);
comments powered by Disqus