Switched Level from having Sprites to Sprite*s.
authorMatt Mullins <mokomull@gmail.com>
Sun, 12 Jul 2009 21:01:49 +0000 (16:01 -0500)
committerMatt Mullins <mokomull@gmail.com>
Sun, 12 Jul 2009 21:01:49 +0000 (16:01 -0500)
Level.cpp
Level.h

index d2bed66..5f48855 100644 (file)
--- a/Level.cpp
+++ b/Level.cpp
@@ -11,17 +11,17 @@ Level::Level(SDL_Surface* screen) :
        mBackground = LoadImage("Backgrounds/bg.bmp");
 
        // load sprites
-       Sprite vikings1(screen, "viking1", &mVikingAnimation);
-       vikings1.setPosition(10,30);
-       vikings1.setSpeed(1);
+       Sprite* vikings1 = new Sprite(screen, "viking1", &mVikingAnimation);
+       vikings1->setPosition(10,30);
+       vikings1->setSpeed(1);
 
-       Sprite vikings2(screen, "viking2", &mVikingAnimation);
-       vikings2.setPosition(350,300);
-       vikings2.setSpeed(1.5);
+       Sprite* vikings2 = new Sprite(screen, "viking2", &mVikingAnimation);
+       vikings2->setPosition(350,300);
+       vikings2->setSpeed(1.5);
 
-       Sprite sun(screen, "sun", &mSunAnimation);
-       sun.setPosition(480,50);
-       sun.setSpeed(1);
+       Sprite* sun = new Sprite(screen, "sun", &mSunAnimation);
+       sun->setPosition(480,50);
+       sun->setSpeed(1);
        
        mSprites.push_back(vikings1);
        mSprites.push_back(vikings2);
@@ -30,6 +30,9 @@ Level::Level(SDL_Surface* screen) :
 
 Level::~Level()
 {
+       for (size_t i = 0; i < mSprites.size(); ++i) {
+               delete mSprites[i];
+       }
 }
 
 void Level::DrawIMG(SDL_Surface *img, int x, int y)
@@ -84,13 +87,13 @@ void Level::drawScene()
 void Level::DrawSprites()
 {
        for (size_t i=0; i<mSprites.size(); ++i) {
-               mSprites[i].clearBG();
+               mSprites[i]->clearBG();
        }
        for (size_t i=0; i<mSprites.size(); ++i) {
-               mSprites[i].updateBG();
+               mSprites[i]->updateBG();
        }
        for (size_t i=0; i<mSprites.size(); ++i) {
-               mSprites[i].draw();
+               mSprites[i]->draw();
        }
 }
 
@@ -104,10 +107,10 @@ void Level::postEvent(SDL_Event event)
        switch (event.type) {
        case SDL_KEYDOWN: {
                Uint8 *keys = SDL_GetKeyState(NULL);
-               if ( keys[SDLK_LEFT] ) {  mSprites[0].xadd(-1);}
-               if ( keys[SDLK_RIGHT] ) { mSprites[0].xadd(1);}
-               if ( keys[SDLK_UP] ) { mSprites[0].yadd(-1);}
-               if ( keys[SDLK_DOWN] ) { mSprites[0].yadd(1);}
+               if ( keys[SDLK_LEFT] ) {  mSprites[0]->xadd(-1); }
+               if ( keys[SDLK_RIGHT] ) { mSprites[0]->xadd(1); }
+               if ( keys[SDLK_UP] ) { mSprites[0]->yadd(-1); }
+               if ( keys[SDLK_DOWN] ) { mSprites[0]->yadd(1); }
        }
        }
 }
diff --git a/Level.h b/Level.h
index 8f2d750..12e24ff 100644 (file)
--- a/Level.h
+++ b/Level.h
@@ -17,7 +17,7 @@ public:
 private:
        SDL_Surface *mBackground;
        SDL_Surface *mScreen;
-       vector<Sprite> mSprites;
+       vector<Sprite*> mSprites;
        void DrawBG();
        void DrawIMG();
        void DrawIMG(SDL_Surface *img, int x, int y);