From: Ivan Hernandez Date: Sun, 12 Jul 2009 22:12:41 +0000 (-0500) Subject: Srpite now has vector mAnimations instead of Animation * X-Git-Url: http://git.mmlx.us/?a=commitdiff_plain;h=9465005606f8c1b63cdfb4e93d7f5bafa6cefbcc;p=IvanGame.git Srpite now has vector mAnimations instead of Animation * --- diff --git a/Sprite.cpp b/Sprite.cpp index 4aa38ba..116e8f1 100644 --- a/Sprite.cpp +++ b/Sprite.cpp @@ -5,26 +5,27 @@ using std::endl; Sprite::Sprite(SDL_Surface *screen, std::string name, Animation *anim) : mFrame(0), + mCurrentAnimation(0), mDrawn(0), mVisible(true), mLastUpdate(0), - mSpriteAnimation(anim), mScreen(screen) { //later add a part that adds name to list of level sprites //Game.Level.SpriteList.pushback(name); - if(mSpriteAnimation -> mBuilt) + mSpriteAnimations.push_back(anim); + if(mSpriteAnimations[mCurrentAnimation] -> mBuilt) { - if (mSpriteAnimation->mNumFrames > 1) mAnimating = 1; + if (mSpriteAnimations[mCurrentAnimation]->mNumFrames > 1) mAnimating = 1; } } void Sprite::draw() { if(mAnimating == 1) { - if(mLastUpdate+mSpriteAnimation->mAnim[mFrame].pause*mSpeedmAnim[mFrame].pause*mSpeed mSpriteAnimation->mNumFrames-1) mFrame=0; + if(mFrame > mSpriteAnimations[mCurrentAnimation]->mNumFrames-1) mFrame=0; mLastUpdate = SDL_GetTicks(); } } @@ -32,6 +33,6 @@ void Sprite::draw() dest.x = mX; dest.y = mY; if(mVisible == true) - SDL_BlitSurface(mSpriteAnimation->mAnim[mFrame].image,NULL,mScreen,&dest); + SDL_BlitSurface(mSpriteAnimations[mCurrentAnimation]->mAnim[mFrame].image,NULL,mScreen,&dest); } diff --git a/Sprite.h b/Sprite.h index 80349e4..ec39f55 100644 --- a/Sprite.h +++ b/Sprite.h @@ -2,13 +2,15 @@ #define SPRITE #include "Animation.h" #include +#include class Sprite { public: Sprite(SDL_Surface *screen, std::string name, Animation *anim); void draw(); - + void setAnimation(int animation){ mCurrentAnimation = animation; } + int getAnimation(){ return mCurrentAnimation; } void setFrame(int frame) { mFrame = frame; } int getFrame() { return mFrame; } void setSpeed(float speed) {mSpeed = speed;} @@ -27,14 +29,15 @@ class Sprite private: std::string mName; int mFrame; - int mX,mY,mOldX, mOldY; - bool mAnimating; + int mX,mY; + bool mAnimating; + int mCurrentAnimation; bool mDrawn; bool mVisible; int mAnimation; float mSpeed; long mLastUpdate; - Animation *mSpriteAnimation; + std::vector mSpriteAnimations; SDL_Surface *mScreen; int ZOrder; }; diff --git a/main.cpp b/main.cpp index a63b101..5384178 100644 --- a/main.cpp +++ b/main.cpp @@ -2,7 +2,6 @@ #include #include #include -#include "Sprite.h" #include #include #include