diff --git a/feely_pona.cpp b/feely_pona.cpp index ea74930..607b13a 100644 --- a/feely_pona.cpp +++ b/feely_pona.cpp @@ -1121,7 +1121,13 @@ void TELY_DLL_FrameUpdate(void *user_data) } } - FP_Update(platform, game, renderer, input); + Dqn_f32 const PHYSICS_STEP = 1 / 60.f; + for (game->delta_s_accumulator += input->delta_s; + game->delta_s_accumulator > PHYSICS_STEP; + game->delta_s_accumulator -= PHYSICS_STEP) { + FP_Update(platform, game, renderer, input); + } + FP_Render(game, platform, renderer); // NOTE: UI ==================================================================================== diff --git a/feely_pona_game.h b/feely_pona_game.h index 190c462..e27d48e 100644 --- a/feely_pona_game.h +++ b/feely_pona_game.h @@ -136,6 +136,7 @@ struct FP_GameCamera struct FP_Game { + Dqn_f32 delta_s_accumulator; uint16_t tile_size; TELY_ChunkPool *chunk_pool; TELY_AssetFontHandle inter_regular_font;