From 94a394438d7be8d7a099e5f72d30b430f2b8f2d2 Mon Sep 17 00:00:00 2001 From: rxbn_ Date: Tue, 17 Dec 2019 22:15:00 +0100 Subject: [PATCH] Aufgabe 3.3 --- src/break_out/controller/Controller.java | 6 ++++++ src/break_out/model/Level.java | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/break_out/controller/Controller.java b/src/break_out/controller/Controller.java index dcbea7b..7f55d69 100644 --- a/src/break_out/controller/Controller.java +++ b/src/break_out/controller/Controller.java @@ -132,6 +132,12 @@ public class Controller implements ActionListener, KeyListener { game.getLevel().getPaddleBottom().setDirection(+1); game.getLevel().getPaddleTop().setDirection(+1); break; + // escape was pressed + case KeyEvent.VK_ESCAPE: + // exit current level + game.getLevel().setFinished(true); + toStartScreen(); + break; } } diff --git a/src/break_out/model/Level.java b/src/break_out/model/Level.java index 9dce4ba..be436e3 100644 --- a/src/break_out/model/Level.java +++ b/src/break_out/model/Level.java @@ -36,6 +36,11 @@ public class Level extends Thread implements ILevel { */ private boolean ballWasStarted = false; + /** + * Flag that shows if the level was finished + */ + private boolean levelFinished = false; + /** * The paddles of the level */ @@ -109,7 +114,7 @@ public class Level extends Thread implements ILevel { game.notifyObservers(); // endless loop - while (true) { + while (!levelFinished) { // if ballWasStarted is true, the ball is moving if (ballWasStarted()) { @@ -184,7 +189,7 @@ public class Level extends Thread implements ILevel { * @param finished game state */ public void setFinished(boolean finished) { - + this.levelFinished = finished; } }