diff --git a/src/GamePanel.java b/src/GamePanel.java index 3c030ba..dd5aea0 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -81,6 +81,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ public BufferedImageWrapper villainPortrait = new BufferedImageWrapper(("img/dialogue/Bouncer.png")); public String lastText; public boolean isContinue; + public boolean isRunning; public GamePanel(JPanel gameFrame) throws IOException, SpriteException, UnsupportedAudioFileException, LineUnavailableException { @@ -143,6 +144,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ addUserInterface(); this.setPreferredSize(new Dimension(GAME_WIDTH, GAME_HEIGHT)); isNewStart = true; + isRunning = true; } public void addUserInterface() { @@ -432,6 +434,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ delta--; } } + System.out.println(Thread.currentThread()); } public void updateEnemy(){ diff --git a/src/MenuPanel.java b/src/MenuPanel.java index c5303e0..73ba335 100644 --- a/src/MenuPanel.java +++ b/src/MenuPanel.java @@ -163,11 +163,14 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{ // logic for different screens starts here if (textBoxArray.get(currentBox).id.equals("game-start")) { try { + GameFrame.main.remove(GameFrame.game); + GameFrame.game.isRunning = false; GameFrame.game = new GamePanel(GameFrame.main); //run GamePanel constructor + GameFrame.game.startThread(); + GameFrame.main.add(GameFrame.game, "game", 0); } catch (IOException | SpriteException | UnsupportedAudioFileException | LineUnavailableException ex) { ex.printStackTrace(); } - GameFrame.game.startThread(); ((CardLayout)gameFrame.getLayout()).show(gameFrame, "game"); } else { ((CardLayout) gameFrame.getLayout()).show(gameFrame, textBoxArray.get(currentBox).id);