1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#include "animation.h"
#include <vector>
Animation::Animation( int x, int y ):
posx( x ),
posy( y ) {
current = pics.begin();
}
void Animation::add( const Bitmap & who ){
pics.push_back( who );
current = pics.begin();
}
const Bitmap Animation::show() const{
return (*current);
}
void Animation::clear() {
pics.clear();
current = pics.begin();
/*
if ( sent ) destroy_bitmap( sent );
sent = NULL;
return;
if ( pics.empty() ) return;
for ( current = pics.begin(); current != pics.end(); ) {
BITMAP * temp = *current;
current = pics.erase( current );
destroy_bitmap( temp );
}
current = pics.begin();
*/
}
void Animation::Next( const Bitmap & work ){
if ( ! pics.empty() ){
const Bitmap & frame = *current;
frame.draw( posx, posy, work );
current++;
if ( current == pics.end() ) current = pics.begin();
}
}
void Animation::changePos( const int x, const int y ) {
posx = x;
posy = y;
}
Animation::~Animation() {
/*
if ( sent )
destroy_bitmap( sent );
return;
for ( current = pics.begin(); current != pics.end(); ) {
BITMAP * temp = *current;
current = pics.erase( current );
destroy_bitmap( temp );
}
*/
}
|