move class Clock to a separate unit

This commit is contained in:
MihailRis
2024-07-19 20:49:04 +03:00
parent fbced2504e
commit eedce588b1
4 changed files with 98 additions and 76 deletions
+41
View File
@@ -0,0 +1,41 @@
#include "Clock.hpp"
#include <cmath>
using namespace util;
Clock::Clock(int tickRate, int tickParts)
: tickRate(tickRate),
tickParts(tickParts) {
}
bool Clock::update(float delta) {
tickTimer += delta;
float delay = 1.0f / float(tickRate);
if (tickTimer > delay || tickPartsUndone) {
if (tickPartsUndone) {
tickPartsUndone--;
} else {
tickTimer = std::fmod(tickTimer, delay);
tickPartsUndone = tickParts-1;
}
return true;
}
return false;
}
int Clock::getParts() const {
return tickParts;
}
int Clock::getPart() const {
return tickParts-tickPartsUndone-1;
}
int Clock::getTickRate() const {
return tickRate;
}
int Clock::getTickId() const {
return tickId;
}
+24
View File
@@ -0,0 +1,24 @@
#ifndef UTIL_CLOCK_HPP_
#define UTIL_CLOCK_HPP_
namespace util {
class Clock {
int tickRate;
int tickParts;
float tickTimer = 0.0f;
int tickId = 0;
int tickPartsUndone = 0;
public:
Clock(int tickRate, int tickParts);
bool update(float delta);
int getParts() const;
int getPart() const;
int getTickRate() const;
int getTickId() const;
};
}
#endif // UTIL_CLOCK_HPP_