#include "game.h"
+// standard library includes
+#include <string>
+
// third party includes
#include <raylib.h>
-Game::Game() {}
+Game::Game()
+ : prev_time(std::chrono::steady_clock::now()), TEMP_cached_dt(0.0F) {}
-void Game::update() {}
+void Game::update() {
+ auto next_time = std::chrono::steady_clock::now();
+ auto duration = std::chrono::duration_cast<std::chrono::microseconds>(
+ next_time - prev_time);
+ prev_time = next_time;
+ update_impl(((float)duration.count()) / 1000000);
+}
void Game::draw() {
+ std::string dt_string =
+ std::string("Delta-time: ") + std::to_string(TEMP_cached_dt);
+
BeginDrawing();
ClearBackground(BLACK);
DrawText("Testing...", 100, 100, 30, RAYWHITE);
+ DrawText(dt_string.c_str(), 100, 140, 30, RAYWHITE);
EndDrawing();
}
+
+void Game::update_impl(float dt) { TEMP_cached_dt = dt; }
#ifndef JUMPARTIFACT_DOT_COM_DEMO_GAME_H_
#define JUMPARTIFACT_DOT_COM_DEMO_GAME_H_
+// standard library includes
+#include <chrono>
+
class Game {
public:
Game();
void draw();
private:
+ void update_impl(float dt);
+
+ std::chrono::steady_clock::time_point prev_time;
+ float TEMP_cached_dt;
};
#endif