59 lines
1.6 KiB
C++
Executable File
59 lines
1.6 KiB
C++
Executable File
/**
|
|
* 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 tryMoveHeroTowards(const Point &point);
|
|
void processMove(bool waiting);
|
|
bool outsideBorder(const Point &point) const;
|
|
void displayScore() const;
|
|
void displayLevel() const;
|
|
};
|
|
|
|
#endif // MAINWINDOW_H
|