From 4b316438832e84ca6fae2ac959b5b300b379a44c Mon Sep 17 00:00:00 2001
From: Michael <michaef01@zedat.fu-berlin.de>
Date: Thu, 21 Mar 2024 13:17:33 +0100
Subject: [PATCH] added comments and explanations to gameLoop.c

---
 gameLoop.c | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/gameLoop.c b/gameLoop.c
index 81e278f..4debc32 100644
--- a/gameLoop.c
+++ b/gameLoop.c
@@ -5,11 +5,15 @@ SDL_Rect *player;
 int playerscore;
 int playerhighscore;
 
+//V: enum vehicle exists with 4 correct themes, Renderer exists
+//N: renderer still exists, all objects are still exist or have been correctly removed
+//E: game has been played for one round, which was at least 16ms long
 void gameLoop(enum vehicle theme,SDL_Renderer* renderer) {
 
     SDL_Event e;
     int speed = 0;
 
+    // Character wird in der Mitte des vorletzten Feldes gestartet
     SDL_Rect character = {
             .x = 420,
             .y = 810,
@@ -22,23 +26,30 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer) {
     playerscore = 0;
     playerhighscore = 0;
 
+    //start_game prevents game start before player input has been received
     bool start_game = false;
+    //ends game if game over criteria have been met
     bool end_game = false;
 
+    //used to implement rows and allows to remove rows out of view
     struct LinkedList *map = init_map(theme); 
 
+    //every at least 16ms this loop is called
     while (!end_game) {
 
+        //prevents overlap of menu and game
         SDL_RenderClear(renderer);
 
+        //used to standardize time to at least 16ms per tick
         Uint32 start_time = SDL_GetTicks();
 
         while (SDL_PollEvent(&e)) {
-
+            
             switch (e.type){
-
+                // if user closes window exit frees all used space
                 case SDL_QUIT:
                       exit(0);
+                // any key input starts game and takes player input
                 case SDL_KEYDOWN:
                     start_game = true;
                     jump(e.key.keysym.scancode);
@@ -70,17 +81,22 @@ void gameLoop(enum vehicle theme,SDL_Renderer* renderer) {
 
         //Position des Spielers wird aktualisiert und gezeichnet
         update_character(speed, renderer);
+        //Der aktuelle Score wird oben rechts angezeigt
         paste_score (renderer);
 
+        //Hier wird der aktuelle Stand des Spiels dem Spieler angezeigt
         SDL_RenderPresent(renderer);
 
         // Spiel bekommt eine feste Aktuallisierungsrate von ~60 fps
+        // Tick dauert mindestens 16ms
         Uint32 end_time = SDL_GetTicks();
         while (end_time - start_time < 16) {
             end_time = SDL_GetTicks();
         }
     }
+        //Wenn das Spiel game over ist schreiben wir den aktuellen Score in die score.txt
         write_table(theme);
+        //wir löschen die map
         free_map(map);
         return;
 }
-- 
GitLab