diff --git a/charac.c b/charac.c index e44b41a592f54c218e54705b9d8de5f0a3a5b569..680acb8a4b872091e6b61719964eb7930b91bc30 100644 --- a/charac.c +++ b/charac.c @@ -6,8 +6,8 @@ Vorbedingung: Es wurde eine Taste gedrückt Nachbedingung: Position des Characters hat sich je nach Tasteneingabe verändert. Wenn keine Steuertaste gedrückt wird, dann passiert nichts. */ -// playerscore = interne Darstellung der ingesamt gelaufenen Schritte minus der zurückgelaufenen Schritte -// playerhighscore = externe Darstellung; höchste Anzahl an nach oben gelaufenen Schritten +// playerscore = interne Darstellung der ingesamt gelaufenen Schritte minus der zurückgelaufenen Schritte + gesammelte Münzen +// playerhighscore = externe Darstellung; höchste Anzahl an nach oben gelaufenen Schritten + gesammelte Münzen // ROW_SIZE = 100 // SDL_SCANCODE_X = MACRO von SDL anstall "magic numbers" zu verwenden diff --git a/main.c b/main.c index 6a97d0f9d2a9770402da038ee4fb3aaec46de5a0..41919d000a5e84d3954a5a9a8e79456fbc558474 100644 --- a/main.c +++ b/main.c @@ -48,10 +48,13 @@ int main(void) { } //Lädt den Titelbildschirm - title_screen(renderer); + if (title_screen(renderer)){ + exitGame(renderer,window); + return(0); + } int theme; - bool change_Map = true; + int change_Map = 1; while (true) { if (change_Map){ @@ -63,6 +66,9 @@ int main(void) { if (gameLoop(theme,renderer)) break; change_Map = end_screen(renderer); + if (change_Map == 2 || change_Map == -1){ + break; + } } diff --git a/menu2.c b/menu2.c index 3f7003cf3dec20c812147fe178d18fbd6881e47d..a2224465d44675da88d77684d9ad92afddffa48f 100644 --- a/menu2.c +++ b/menu2.c @@ -213,7 +213,7 @@ wird nach Position des Rahmens das entsprechende Level geladen Vorb.: Das Spiel ist angehalten und es wird "Nochmal (y)/(n)" angezeigt Nachb.: Das Spiel wird erneut gestartet, wenn y gedrückt wird. Wenn n gedrückt wird, wird die Levelauswahl geöffnet */ -bool end_screen(SDL_Renderer* renderer) { +int end_screen(SDL_Renderer* renderer) { //Schriftart, -farbe und -groesse festesetzen @@ -263,25 +263,24 @@ bool end_screen(SDL_Renderer* renderer) { while (SDL_PollEvent(&e)) { switch (e.type) { - case SDL_QUIT: - exit(0); - case SDL_KEYDOWN: + case SDL_QUIT: + return(2); // Spiel wird geschlossen + case SDL_KEYDOWN: input = e.key.keysym.scancode; if (input == y) { SDL_FreeSurface(surfaceMessage); SDL_DestroyTexture(Message); - quit = true; - return(false); + return(0); } - + if (input == n) { SDL_FreeSurface(surfaceMessage); SDL_DestroyTexture(Message); - return(true); + return(1); } } } } - return(true); + return(1); } diff --git a/menu2.h b/menu2.h index a7c9e28cdfbb66ce48254d404d88e8853005b0e7..f5a679ddbcf2d4796afa3124d64f93c8e38c3fde 100644 --- a/menu2.h +++ b/menu2.h @@ -15,7 +15,7 @@ //Declaration of functions -bool end_screen(SDL_Renderer*); +int end_screen(SDL_Renderer*); enum vehicle startscreen(SDL_Renderer*); diff --git a/title_screen.c b/title_screen.c index 89f6873102ccfe388e766ece6e09f656d909c6cd..206acda46ddf47cfd18ac51d1243ae160de386f9 100644 --- a/title_screen.c +++ b/title_screen.c @@ -100,7 +100,7 @@ int title_screen(SDL_Renderer* renderer){ while (SDL_PollEvent(&e)) { switch (e.type) { case SDL_QUIT: - exit(0); + return(1); case SDL_KEYDOWN: return(0); }