From 61e382cedd71127033f91551298607e2e78c3809 Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Wed, 18 Sep 2024 15:11:04 +0200 Subject: gameloop save --- gameloop/versions/delayBased.cpp | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 gameloop/versions/delayBased.cpp (limited to 'gameloop/versions') diff --git a/gameloop/versions/delayBased.cpp b/gameloop/versions/delayBased.cpp new file mode 100644 index 0000000..a8cad15 --- /dev/null +++ b/gameloop/versions/delayBased.cpp @@ -0,0 +1,57 @@ +#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); + } +} + -- cgit v1.2.3