diff options
author | Charadon <dev@iotib.net> | 2022-06-13 15:27:04 -0400 |
---|---|---|
committer | Charadon <dev@iotib.net> | 2022-06-13 15:27:04 -0400 |
commit | 129c32fc63270fd622de10eb6bb336ba4702a4e6 (patch) | |
tree | bbe7ad6f4050304eb922abd6fc6fd89f6d0a7f40 | |
parent | bba57e993eff1f73bf7e6d6e263e2dced0a2c859 (diff) | |
download | Pong-C-129c32fc63270fd622de10eb6bb336ba4702a4e6.tar.gz |
Maybe this will work
-rw-r--r-- | src/main.c | 29 | ||||
-rw-r--r-- | src/title.c | 1 |
2 files changed, 14 insertions, 16 deletions
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 <SDL2/SDL_atomic.h> +#include <SDL2/SDL_thread.h> +#include <SDL2/SDL_timer.h> #include <raylib.h> 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; |