aboutsummaryrefslogtreecommitdiff
path: root/mwe/gameloop/versions
diff options
context:
space:
mode:
authorheavydemon21 <nielsstunnebrink1@gmail.com>2024-10-01 11:05:42 +0200
committerheavydemon21 <nielsstunnebrink1@gmail.com>2024-10-01 11:05:42 +0200
commit8e66301577551bc5b8a2e169be173e71de2f5e4e (patch)
tree52797ebfe53007eaf502c9cf9aafbd34817f5d0b /mwe/gameloop/versions
parent2d13805218eb34b6e06205c1b65c341ebcdad504 (diff)
parentf4560e02f703f1c6f857c8e5af63fa9fc4ca6438 (diff)
Merge branch 'master' into niels/resource-manager
Diffstat (limited to 'mwe/gameloop/versions')
-rw-r--r--mwe/gameloop/versions/delayBased.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/mwe/gameloop/versions/delayBased.cpp b/mwe/gameloop/versions/delayBased.cpp
new file mode 100644
index 0000000..253a03a
--- /dev/null
+++ b/mwe/gameloop/versions/delayBased.cpp
@@ -0,0 +1,56 @@
+#include "loopManager.h"
+#include "timer.h"
+LoopManager::LoopManager() {}
+void LoopManager::processInput() {
+ SDL_Event event;
+ SDL_PollEvent(&event);
+ switch (event.type) {
+ case SDL_QUIT:
+ gameRunning = false;
+ break;
+ case SDL_KEYDOWN:
+ if (event.key.keysym.sym == SDLK_ESCAPE) {
+ gameRunning = false;
+ }
+ break;
+ }
+}
+void LoopManager::loop() {
+ fprintf(stderr, "loop. \n");
+ while (gameRunning) {
+ //Timer::getInstance().update();
+ //deltaTime = Timer::getInstance().getDeltaTime();
+ processInput();
+ update();
+ render();
+ }
+ window.destroyWindow();
+}
+void LoopManager::setup() {
+ gameRunning = window.initWindow();
+ LoopTimer::getInstance().start();
+ LoopTimer::getInstance().setFPS(210);
+
+ for (int i = 0; i < 2; i++) {
+ GameObject * square2
+ = new GameObject("square2", i * 40, i * 40, 20, 20, 0, 0);
+ objectList.push_back(square2);
+ }
+}
+void LoopManager::render() {
+ if (gameRunning) {
+ window.render(objectList);
+ }
+}
+
+void LoopManager::update() {
+ LoopTimer & timer = LoopTimer::getInstance();
+ timer.enforceFrameRate();
+ timer.update();
+ float delta = timer.getDeltaTime();
+
+ for (int i = 0; i < objectList.size(); i++) {
+ objectList[i]->setX(objectList[i]->getX() + 50 * delta);
+ objectList[i]->setY(objectList[i]->getY() + 50 * delta);
+ }
+}