diff --git a/src/Game.cpp b/src/Game.cpp index 567bc2f..d802b73 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -1,2 +1,9 @@ +#include #include "Game.h" +void Game::draw(QPixmap *output) { + QPainter p(output); + double w = output->size().width(); + double h = output->size().height(); + p.fillRect(w / 2 - 10, h / 2 - 10, 20, 20, Qt::red); +} diff --git a/src/Game.h b/src/Game.h index fe19c60..03db710 100644 --- a/src/Game.h +++ b/src/Game.h @@ -1,5 +1,10 @@ #pragma once +#include "Queue.h" + class Game { + GameQueue * eventQueue = new GameQueue; +public: + void draw(QPixmap * output); }; diff --git a/src/InputWindow.h b/src/InputWindow.h index cee2f50..8fde279 100644 --- a/src/InputWindow.h +++ b/src/InputWindow.h @@ -5,7 +5,7 @@ class InputWindow : public QWidget { public: - InputQueue * inputQueue; + InputQueue * inputQueue = new InputQueue; protected: void mousePressEvent(QMouseEvent * event) override; void mouseReleaseEvent(QMouseEvent * event) override; diff --git a/src/Window.cpp b/src/Window.cpp index b20e462..a5e5e7d 100644 --- a/src/Window.cpp +++ b/src/Window.cpp @@ -1,3 +1,24 @@ #include "Window.h" +Window::Window() { + timer = new QTimer(this); + timer->setInterval(17); + connect(timer, &QTimer::timeout, this, [this](){ + update(); + }); + timer->start(); + + label = new QLabel(this); + label->resize(size()); +} + +void Window::paintEvent(QPaintEvent *) { + auto output = new QPixmap(label->size()); + game.draw(output); + label->setPixmap(*output); +} + +void Window::resizeEvent(QResizeEvent *e) { + label->resize(e->size()); +} diff --git a/src/Window.h b/src/Window.h index cb89f7d..5b4e614 100644 --- a/src/Window.h +++ b/src/Window.h @@ -4,11 +4,17 @@ #include "Audio.h" #include "FileManager.h" #include "InputWindow.h" - +#include +#include "Game.h" +#include class Window : public InputWindow { + Game game; + QLabel * label; + QTimer * timer; public: - GameQueue * gameQueue; - Audio * AudioManager; - FileManager * fileManager; + explicit Window(); +protected: + void paintEvent(QPaintEvent *) override; + void resizeEvent(QResizeEvent *) override; }; diff --git a/src/main.cpp b/src/main.cpp index 3c9ac1f..ea305f1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,9 +1,5 @@ #include #include -#include "Queue.h" -#include "Audio.h" -#include "FileManager.h" -#include "Player.h" #include "Window.h" using std::cout, std::endl; @@ -28,18 +24,5 @@ int main(int argc, char * argv[]){ Window w; w.show(); - w.inputQueue = new InputQueue; - w.gameQueue = new GameQueue; - w.AudioManager = new Audio; - w.fileManager = new FileManager; - - auto player = new Player; - - w.inputQueue->registerListener(player); - - w.gameQueue->registerListener(player); - w.gameQueue->submitEvent(new CoinCollectEvent); - w.gameQueue->submitEvent(new DamageEvent); - return QApplication::exec(); } \ No newline at end of file