diff options
Diffstat (limited to 'mwe/gameloop')
-rw-r--r-- | mwe/gameloop/include/eventManager.h | 6 | ||||
-rw-r--r-- | mwe/gameloop/include/gameObject.h | 5 | ||||
-rw-r--r-- | mwe/gameloop/include/loopManager.h | 3 | ||||
-rw-r--r-- | mwe/gameloop/include/timer.h | 2 | ||||
-rw-r--r-- | mwe/gameloop/src/gameObject.cpp | 12 | ||||
-rw-r--r-- | mwe/gameloop/src/loopManager.cpp | 27 | ||||
-rw-r--r-- | mwe/gameloop/src/timer.cpp | 3 | ||||
-rw-r--r-- | mwe/gameloop/src/window.cpp | 7 | ||||
-rw-r--r-- | mwe/gameloop/versions/delayBased.cpp | 3 |
9 files changed, 43 insertions, 25 deletions
diff --git a/mwe/gameloop/include/eventManager.h b/mwe/gameloop/include/eventManager.h index 69c6801..a1b9f92 100644 --- a/mwe/gameloop/include/eventManager.h +++ b/mwe/gameloop/include/eventManager.h @@ -1 +1,5 @@ -class EventManager {}; +#pragma once +class EventManager { +public: + EventManager(); +}; diff --git a/mwe/gameloop/include/gameObject.h b/mwe/gameloop/include/gameObject.h index abdc9b0..1955b59 100644 --- a/mwe/gameloop/include/gameObject.h +++ b/mwe/gameloop/include/gameObject.h @@ -3,8 +3,9 @@ class GameObject { public: GameObject(); - GameObject(std::string name, float x, float y, float width, float height, - float velX, float velY); + GameObject( + std::string name, float x, float y, float width, float height, float velX, float velY + ); std::string getName() const; float getX() const; float getY() const; diff --git a/mwe/gameloop/include/loopManager.h b/mwe/gameloop/include/loopManager.h index e202423..7d37253 100644 --- a/mwe/gameloop/include/loopManager.h +++ b/mwe/gameloop/include/loopManager.h @@ -5,6 +5,7 @@ class LoopManager { public: LoopManager(); + ~LoopManager(); void setup(); void loop(); @@ -16,7 +17,7 @@ private: void fixedUpdate(); void render(); bool gameRunning = false; - WindowManager window; + WindowManager * window; int timeScale = 1; float accumulator = 0.0; double currentTime; diff --git a/mwe/gameloop/include/timer.h b/mwe/gameloop/include/timer.h index 8273746..3c38594 100644 --- a/mwe/gameloop/include/timer.h +++ b/mwe/gameloop/include/timer.h @@ -25,7 +25,7 @@ private: double maximumDeltaTime = 0.25; double deltaTime; double frameTargetTime = FPS / 1000; - double fixedDeltaTime = 0.01; + double fixedDeltaTime = 0.02; double elapsedTime; double elapsedFixedTime; double time; diff --git a/mwe/gameloop/src/gameObject.cpp b/mwe/gameloop/src/gameObject.cpp index 78217c4..31503d1 100644 --- a/mwe/gameloop/src/gameObject.cpp +++ b/mwe/gameloop/src/gameObject.cpp @@ -24,7 +24,13 @@ void GameObject::setVelX(float value) { velX = value; } void GameObject::setVelY(float value) { velY = value; } -GameObject::GameObject(std::string name, float x, float y, float width, - float height, float velX, float velY) - : name(name), x(x), y(y), width(width), height(height), velX(velX), +GameObject::GameObject( + std::string name, float x, float y, float width, float height, float velX, float velY +) + : name(name), + x(x), + y(y), + width(width), + height(height), + velX(velX), velY(velY) {} diff --git a/mwe/gameloop/src/loopManager.cpp b/mwe/gameloop/src/loopManager.cpp index 0392853..70cea4c 100644 --- a/mwe/gameloop/src/loopManager.cpp +++ b/mwe/gameloop/src/loopManager.cpp @@ -1,6 +1,12 @@ #include "loopManager.h" #include "timer.h" -LoopManager::LoopManager() {} +LoopManager::LoopManager() { this->window = new WindowManager(); } +LoopManager::~LoopManager() { + for (GameObject * object : this->objectList) { + delete object; + } + delete this->window; +} void LoopManager::processInput() { SDL_Event event; SDL_PollEvent(&event); @@ -13,10 +19,12 @@ void LoopManager::processInput() { gameRunning = false; } else if (event.key.keysym.sym == SDLK_i) { LoopTimer::getInstance().setGameScale( - LoopTimer::getInstance().getGameScale() + 0.1); + LoopTimer::getInstance().getGameScale() + 0.1 + ); } else if (event.key.keysym.sym == SDLK_k) { LoopTimer::getInstance().setGameScale( - LoopTimer::getInstance().getGameScale() - 0.1); + LoopTimer::getInstance().getGameScale() - 0.1 + ); } break; @@ -42,24 +50,23 @@ void LoopManager::loop() { timer.enforceFrameRate(); } - window.destroyWindow(); + window->destroyWindow(); } void LoopManager::setup() { - gameRunning = window.initWindow(); - LoopTimer::getInstance().start(); - LoopTimer::getInstance().setFPS(500); + LoopTimer::getInstance().start(); + LoopTimer::getInstance().setFPS(10); + this->gameRunning = true; for (int i = 1; i < 3; i++) { - GameObject * square - = new GameObject("square2", i * 60, i * 60, 20, 20, 0, 0); + GameObject * square = new GameObject("square2", i * 60, i * 60, 20, 20, 0, 0); objectList.push_back(square); } } void LoopManager::render() { fprintf(stderr, "**********render********** \n"); if (gameRunning) { - window.render(objectList); + window->render(objectList); } } diff --git a/mwe/gameloop/src/timer.cpp b/mwe/gameloop/src/timer.cpp index 97baef6..5ae1564 100644 --- a/mwe/gameloop/src/timer.cpp +++ b/mwe/gameloop/src/timer.cpp @@ -45,8 +45,7 @@ void LoopTimer::enforceFrameRate() { double frameDuration = (currentFrameTime - lastFrameTime) / 1000.0; if (frameDuration < frameTargetTime) { - uint32_t delayTime - = (uint32_t) ((frameTargetTime - frameDuration) * 1000.0); + uint32_t delayTime = (uint32_t) ((frameTargetTime - frameDuration) * 1000.0); SDL_Delay(delayTime); } } diff --git a/mwe/gameloop/src/window.cpp b/mwe/gameloop/src/window.cpp index dd1d98f..df17773 100644 --- a/mwe/gameloop/src/window.cpp +++ b/mwe/gameloop/src/window.cpp @@ -36,9 +36,10 @@ bool WindowManager::initWindow() { fprintf(stderr, "Error inititalising SDL.\n"); return false; } - window = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, - SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, - SCREEN_HEIGHT, SDL_WINDOW_SHOWN); + window = SDL_CreateWindow( + "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, + SCREEN_HEIGHT, SDL_WINDOW_SHOWN + ); if (!window) { fprintf(stderr, "Error creating SDL Window. \n"); return false; diff --git a/mwe/gameloop/versions/delayBased.cpp b/mwe/gameloop/versions/delayBased.cpp index 253a03a..634de9c 100644 --- a/mwe/gameloop/versions/delayBased.cpp +++ b/mwe/gameloop/versions/delayBased.cpp @@ -32,8 +32,7 @@ void LoopManager::setup() { LoopTimer::getInstance().setFPS(210); for (int i = 0; i < 2; i++) { - GameObject * square2 - = new GameObject("square2", i * 40, i * 40, 20, 20, 0, 0); + GameObject * square2 = new GameObject("square2", i * 40, i * 40, 20, 20, 0, 0); objectList.push_back(square2); } } |