Srpite now has vector<Animation*> mAnimations instead of Animation *
authorIvan Hernandez <iturtleman128@gmail.com>
Sun, 12 Jul 2009 22:12:41 +0000 (17:12 -0500)
committerIvan Hernandez <iturtleman128@gmail.com>
Sun, 12 Jul 2009 22:12:41 +0000 (17:12 -0500)
Sprite.cpp
Sprite.h
main.cpp

index 4aa38ba..116e8f1 100644 (file)
@@ -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*mSpeed<SDL_GetTicks()) {
+               if(mLastUpdate+mSpriteAnimations[mCurrentAnimation]->mAnim[mFrame].pause*mSpeed<SDL_GetTicks()) {
                        mFrame++;
-                       if(mFrame > 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);
 }
 
index 80349e4..ec39f55 100644 (file)
--- a/Sprite.h
+++ b/Sprite.h
@@ -2,13 +2,15 @@
 #define SPRITE
 #include "Animation.h"
 #include <SDL/SDL.h>
+#include <vector>
 
 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<Animation*> mSpriteAnimations;
        SDL_Surface *mScreen;
        int ZOrder;
 };
index a63b101..5384178 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -2,7 +2,6 @@
 #include <stdlib.h>\r
 #include <string>\r
 #include <SDL/SDL.h>\r
-#include "Sprite.h"\r
 #include <iostream>\r
 #include <sstream>\r
 #include <vector>\r