aboutsummaryrefslogtreecommitdiff
path: root/src/GameView.h
diff options
context:
space:
mode:
authorSamu Laaksonen <laaksonen.sj@gmail.com>2012-09-25 20:00:41 +0300
committerSamu Laaksonen <laaksonen.sj@gmail.com>2012-09-25 20:00:41 +0300
commit685fe05def77b039221edf06c74af74915d536c5 (patch)
tree9c1a14b8f68bc0f801bdec3edc447d04fdbf7a4c /src/GameView.h
parent29eabac0670574efd384182c065f53d08c42a483 (diff)
downloadprism-685fe05def77b039221edf06c74af74915d536c5.tar.gz
prism-685fe05def77b039221edf06c74af74915d536c5.zip
Initial code commit
Added some stuff for project base - tiled sources - few Qt based classes for gfx
Diffstat (limited to 'src/GameView.h')
-rw-r--r--src/GameView.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/GameView.h b/src/GameView.h
new file mode 100644
index 0000000..b45dfb6
--- /dev/null
+++ b/src/GameView.h
@@ -0,0 +1,57 @@
+#ifndef GameView_h
+#define GameView_h
+
+#include <QGraphicsView>
+#include <QList>
+#include <QTimer>
+
+class ActionScene;
+class GameScene;
+class SceneChanger;
+
+class GameView : public QGraphicsView
+{
+ Q_OBJECT
+public:
+ static GameView *instance();
+
+ GameScene *getScene(const QString &);
+ GameScene *getCurrentScene();
+
+ ActionScene* getActionScene();
+
+signals:
+
+public slots:
+
+ void gameOver();
+
+ void showMenuScene();
+ void showLevelSelectionScene();
+ void showCreditsScene();
+ void showActionScene();
+
+ void changeScene(GameScene* );
+ void showScene(GameScene *);
+ void showScene(const QString &);
+
+private slots:
+
+ //! Calls GameScene::updateLogic of the current scene
+ void updateSceneLogic();
+
+private:
+ explicit GameView(QWidget *parent = 0);
+
+ static GameView *m_instance;
+
+ ActionScene* m_actionScene;
+ SceneChanger* m_sceneChanger;
+
+ QList<GameScene *> m_scenes;
+
+ //! Timer used to scene updates
+ QTimer *m_gameTimer;
+};
+
+#endif // GameView_h