diff options
author | Nao Pross <naopross@thearcway.org> | 2018-02-11 22:55:22 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2018-02-11 22:55:22 +0100 |
commit | e3fd07e606098dd9cdf0b7ed806340d8466b5572 (patch) | |
tree | cbf5cc81afcbbc62784f7c6fc02d4418cf03cee7 /src/main/cpp/Subconscious.cpp | |
parent | Remove redundant scenesOffsetX/Y, replaced with panX (diff) | |
download | Subconscious-old-e3fd07e606098dd9cdf0b7ed806340d8466b5572.tar.gz Subconscious-old-e3fd07e606098dd9cdf0b7ed806340d8466b5572.zip |
Reimplement in C++ with SFML (mostly)
Diffstat (limited to '')
-rw-r--r-- | src/main/cpp/Subconscious.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/main/cpp/Subconscious.cpp b/src/main/cpp/Subconscious.cpp new file mode 100644 index 0000000..942b0b4 --- /dev/null +++ b/src/main/cpp/Subconscious.cpp @@ -0,0 +1,60 @@ +#include "Subconscious.hpp" +#include "WorldScene.hpp" + +#include <SFML/Graphics.hpp> + +/*** public methods ***/ + +Subconscious::Subconscious() + : _window(sf::VideoMode(800, 600), "Subconscious") +{ + _window.setVerticalSyncEnabled(true); + _window.setFramerateLimit(90); +} + +Subconscious::~Subconscious() +{} + +void Subconscious::run() +{ + _running = true; + while (_running && _window.isOpen()) { + gameUpdate(); + gameRender(); + } +} + +void Subconscious::demo() +{ + Scene *demoScene = new WorldScene(); + + _currentScene = demoScene; + _scenes.push_back(demoScene); + + run(); +} + + +/*** private methods ***/ + +void Subconscious::gameUpdate() +{ + sf::Event event; + + while (_window.pollEvent(event)) { + if (event.type == sf::Event::Closed) { + _window.close(); + } + } +} + +void Subconscious::gameRender() +{ + _window.clear(); + + if (_currentScene != nullptr) { + _currentScene->render(_window); + } + + _window.display(); +} |