about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCharadon <dev@iotib.net>2022-06-13 13:57:35 -0400
committerCharadon <dev@iotib.net>2022-06-13 13:57:35 -0400
commit141fb04b0d4d1ee07a8b7773824785248ec1c282 (patch)
tree385709fa3532372a473a93838ad0c13b84fa204d
parent2d334edcc2429c03add4b6b0953e35994e19b339 (diff)
downloadPong-C-141fb04b0d4d1ee07a8b7773824785248ec1c282.tar.gz
Attempt #2 at internal clock
-rw-r--r--resources/cursor.pngbin172 -> 217 bytes
-rw-r--r--src/main.c22
-rw-r--r--src/title.c2
3 files changed, 7 insertions, 17 deletions
diff --git a/resources/cursor.png b/resources/cursor.png
index 292608e..db3ed26 100644
--- a/resources/cursor.png
+++ b/resources/cursor.png
Binary files differdiff --git a/src/main.c b/src/main.c
index 4886523..ef07c98 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,4 +1,5 @@
 #include "pong.h"
+#include <raylib.h>
 
 int Difficulty = 1;
 SDL_atomic_t Ticks;
@@ -54,25 +55,16 @@ static int internal_clock() {
 	struct timespec Remaining = {
 		0, 0
 	};
-	bool Lock = true;
 	while(GameGoing == true) {
 		SDL_AtomicAdd(&Ticks, 1);
+		double OldTime = GetTime();
 		nanosleep(&Delay, &Remaining);
-		if (Remaining.tv_nsec != 0 && Remaining.tv_sec != 0) {
-			Lock = true;
-			double InitialTime = GetTime();
-			double TotalRemainingTime = (Remaining.tv_sec/1000000000.0f)+(Remaining.tv_nsec*1000000000.0f);
-			while(Lock == true) {
-				double CurrentTime = GetTime() - InitialTime;
-				TotalRemainingTime -= CurrentTime;
-				if(TotalRemainingTime <= 0) {
-					Lock = false;
-				}
-			}
-		} else {
-			Lock = false;
+		double NewTime = GetTime();
+		printf("%lf,%lf,%d,%lf\n", OldTime, NewTime, SDL_AtomicGet(&Ticks), (NewTime-OldTime));
+		while((OldTime-NewTime) > (1.0/60.0f)) {
+			NewTime = GetTime();
+			printf("%lf\n", (OldTime-NewTime));
 		}
-		
 	}
 	return(0);
 }
diff --git a/src/title.c b/src/title.c
index 2327713..5c8987c 100644
--- a/src/title.c
+++ b/src/title.c
@@ -1,6 +1,4 @@
 #include "pong.h"
-#include <raylib.h>
-#include <stdio.h>
 
 struct LeaderboardEntries {
     int Score;