00001 #ifndef _BREAKOUTGAMESCENE_H_ 00002 #define _BREAKOUTGAMESCENE_H_ 00003 00004 #include "IScene.h" 00005 00006 #include "BreakoutBall.h" 00007 #include "BreakoutBox.h" 00008 #include "BreakoutWorldBoundaries.h" 00009 #include "BreakoutPaddle.h" 00010 #include "IBreakoutLevelGenerator.h" 00011 #include "BreakoutLocationArray.h" 00012 #include "BreakoutScoreCounter.h" 00013 #include "Visualisation.h" 00014 #include <vector> 00015 00016 class BreakoutGameScene : public IScene 00017 { 00018 public: 00019 BreakoutGameScene(); 00020 ~BreakoutGameScene(); 00021 00022 virtual void Initialise(); 00023 virtual void Draw(); 00024 virtual void Update(); 00025 virtual void Shutdown(); 00026 00027 virtual void Activate(); 00028 virtual void Deactivate(); 00029 00030 virtual bool HandleEvent(IEvent* pEvent); 00031 00032 void CheckGameConditions(); 00033 void StartNewLevel(); 00034 void Reset(); 00035 00036 protected: 00037 enum eLevelStatus 00038 { 00039 eLevelStarting = 0, 00040 eLevelPlaying, 00041 eLevelEnding 00042 }; 00043 00044 bool m_bIsActive; 00045 00046 BreakoutBall* m_pBall; 00047 BreakoutPaddle* m_pPaddle; 00048 BreakoutWorldBoundaries* m_pWorldBoundaries; 00049 00050 SpriteID m_bgSprite, m_startLevelText, m_endLevelText, m_livesLabel; 00051 00052 BreakoutLocationArray* m_pBoxLocations; 00053 std::vector<IBreakoutLevelGenerator*> m_levelGenerators; 00054 BreakoutLevel* m_pCurrentLevel; 00055 BreakoutScoreCounter* m_pScoreCounter, *m_pLevelCounter, *m_pLivesCounter; 00056 00057 eLevelStatus m_levelStatus; 00058 unsigned int m_statusChangeTime; 00059 int m_deathLineY; 00060 00061 int m_playerLives, m_playerScore, m_levelNumber; 00062 }; 00063 00064 #endif
1.5.9