From 129c32fc63270fd622de10eb6bb336ba4702a4e6 Mon Sep 17 00:00:00 2001 From: Charadon Date: Mon, 13 Jun 2022 15:27:04 -0400 Subject: Maybe this will work --- src/main.c | 29 +++++++++++++---------------- src/title.c | 1 + 2 files changed, 14 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index aebc6aa..d15877e 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,7 @@ #include "pong.h" +#include +#include +#include #include int Difficulty = 1; @@ -49,25 +52,19 @@ void set_screen_mode() { } static int internal_clock() { - const struct timespec Delay = { - 0, 9999 - }; - struct timespec Remaining = { - 0, 0 - }; - double OldTime = GetTime(); + SDL_SetThreadPriority(SDL_THREAD_PRIORITY_TIME_CRITICAL); + double NewTime = 0; + double OldTime = 0; + double Milliseconds = (1000.0/60)/1000.0; + double DeltaTime = 0; while(GameGoing == true) { - //nanosleep(&Delay, &Remaining); - double NewTime = GetTime(); - while((NewTime-OldTime) < (1.0/60.0f)) { - NewTime = GetTime(); - } - if((NewTime-OldTime) >= (1.0/60.0f)) { + NewTime = SDL_GetTicks()/1000.0f; + DeltaTime += (NewTime-OldTime)/Milliseconds; + OldTime = NewTime; + while(DeltaTime >= 1.0) { SDL_AtomicAdd(&Ticks, 1); - OldTime = GetTime(); + DeltaTime--; } - - printf("%lf,%lf,%d\n", GetTime(),(NewTime-OldTime), SDL_AtomicGet(&Ticks)); } return(0); } diff --git a/src/title.c b/src/title.c index 5c8987c..c5a15ce 100644 --- a/src/title.c +++ b/src/title.c @@ -397,6 +397,7 @@ int title_screen() { while(TitleScreenGoing == true && GameGoing == true) { + printf("%lf, %d\n", GetTime(), SDL_AtomicGet(&Ticks)); if (WindowShouldClose()) { //Quit Game if the window is closed. GameGoing = false; TitleScreenGoing = false; -- cgit 1.4.1-2-gfad0