diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-11-09 22:12:41 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-11-09 22:12:41 +0100 |
| commit | 6a72f2f15c9f39b2a851b955b9b87abede8d0257 (patch) | |
| tree | 53afef7ae52433d170fafd070941a5e57e6b44dc /labb4/mainwindow.h | |
| parent | 209bc7540a97bb238e70b9f9e248a0a0c756a4c0 (diff) | |
| download | tddd86-6a72f2f15c9f39b2a851b955b9b87abede8d0257.tar.gz | |
initial work
Diffstat (limited to 'labb4/mainwindow.h')
| -rw-r--r-- | labb4/mainwindow.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/labb4/mainwindow.h b/labb4/mainwindow.h new file mode 100644 index 0000000..1ebbb7d --- /dev/null +++ b/labb4/mainwindow.h @@ -0,0 +1,58 @@ +/** + * TDDD86 Robots + * This file contains the declaration of the mainwindow class. + * See mainwindow.cpp for implementation of each member. + */ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include <QWidget> +#include <QVBoxLayout> +#include <QHBoxLayout> +#include <QGraphicsView> +#include <QGraphicsScene> +#include <QLabel> +#include <QKeyEvent> +#include "qgameoverwindow.h" +#include "constants.h" +#include "GameState.h" + +class MainWindow : public QWidget { + Q_OBJECT +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + +signals: + +protected: + void keyPressEvent(QKeyEvent *k); + +public slots: + void resetGame(); + +private: + QVBoxLayout* mainLayout = nullptr; // main layout + QHBoxLayout* labelLayout = nullptr; // label layout + QGraphicsView* view = nullptr; // playing field widget + QGraphicsScene* scene = nullptr; // scene for playing field + QLabel* scoreLabel = nullptr; // score widget + QLabel* levelLabel = nullptr; // level widget + QGameOverWindow gameOverWindow; // game over widget + + int score = 0; // current score + int level = 1; // current level + int numberOfRobots = MIN_ROBOTS; // current no. of robots + GameState gameState = GameState(numberOfRobots); // current state of game + bool gameOver = false; + + // private helpers + bool tryMove(Hero hero, const Point &point); + void processMove(bool waiting); + bool outsideBorder(const Point &point) const; + void displayScore() const; + void displayLevel() const; +}; + +#endif // MAINWINDOW_H |
