From a226a30862f50d8b37bc847b9ffb52f6cc0e7f8b Mon Sep 17 00:00:00 2001 From: John Date: Fri, 17 Jun 2022 13:55:23 -0400 Subject: [PATCH] Add stuff --- src/GameFrame.java | 5 +++-- src/GamePanel.java | 1 + src/MenuPanel.java | 28 ++++++++++++++++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/GameFrame.java b/src/GameFrame.java index 79849e8..03046e6 100644 --- a/src/GameFrame.java +++ b/src/GameFrame.java @@ -17,17 +17,17 @@ public class GameFrame extends JFrame{ MenuPanel menu; public static GamePanel game; + public static CameraPanel main; SettingPanel settings; - CameraPanel main; public GameFrame(){ try { main = new CameraPanel(); main.setLayout(new CardLayout()); - menu = new MenuPanel(main); try { game = (GamePanel)FileManager.readObjectFromFile("local/game_state.dat", Arrays.asList("Any")); game.gameFrame = main; + game.isContinue = true; game.addUserInterface(); game.startThread(); } catch (IOException | ClassNotFoundException | ClassCastException | SecurityException e) { @@ -45,6 +45,7 @@ public class GameFrame extends JFrame{ game.middlewareArray = new ArrayList(); } */ + menu = new MenuPanel(main); settings = new SettingPanel(main); main.add(menu, "menu"); main.add(settings, "settings"); diff --git a/src/GamePanel.java b/src/GamePanel.java index d881d4f..61c5f99 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -76,6 +76,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ public BufferedImageWrapper narratorPortrait = new BufferedImageWrapper(("img/dialogue/Gunther.png")); public BufferedImageWrapper villainPortrait = new BufferedImageWrapper(("img/dialogue/Bouncer.png")); public String lastText; + public boolean isContinue; public GamePanel(JPanel gameFrame) throws IOException, SpriteException, UnsupportedAudioFileException, LineUnavailableException { diff --git a/src/MenuPanel.java b/src/MenuPanel.java index ce853c7..c5303e0 100644 --- a/src/MenuPanel.java +++ b/src/MenuPanel.java @@ -29,7 +29,7 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{ public Image image; public Graphics graphics; public BackgroundImage background; - public TextBox title, enter, settings; + public TextBox title, enter, settings, continueGame; public ArrayList textBoxArray = new ArrayList(); public Font standardFont = new Font(Font.MONOSPACED, Font.BOLD, 60); public int playerFrame, enemyFrame; @@ -46,10 +46,14 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{ camera = gameFrame.camera; title = new TextBox(100, 400, 100, GAME_WIDTH, standardFont, "Platformer", null); - enter = new TextBox(300, 600, 100, GAME_WIDTH, standardFont, "Start Game", "game"); - settings = new TextBox(400, 600, 100, GAME_WIDTH, standardFont, "Settings", "settings"); + continueGame = new TextBox(300, 600, 100, GAME_WIDTH, standardFont, "Continue", "game"); + enter = new TextBox(400, 600, 100, GAME_WIDTH, standardFont, "Start Game", "game-start"); + settings = new TextBox(500, 600, 100, GAME_WIDTH, standardFont, "Settings", "settings"); textBoxArray.add(enter); textBoxArray.add(settings); + if (GameFrame.game.isContinue) { + textBoxArray.add(0, continueGame); + } background = new BackgroundImage(0, 0, backgroundImage, GAME_WIDTH, GAME_HEIGHT, 10, camera); // the height of 35 is set because it is half of the original tile height (i.e., 70px) @@ -100,6 +104,9 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{ public void draw(Graphics g, int playerFrame, int enemyFrame){ background.draw(g); title.draw(g,null, Color.black); + if (!GameFrame.game.isContinue) { + continueGame.draw(g, null, Color.gray); + } for (TextBox t: textBoxArray) { t.draw(g, null, Color.cyan); } @@ -150,12 +157,21 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{ e = UtilityFunction.intercept(e, GameFrame.game.middlewareArray); if (e.getKeyCode() == KeyEvent.VK_ENTER) { - if(textBoxArray.get(currentBox).id.equals("game")){ + if(textBoxArray.get(currentBox).id.contains("game")){ gameStart = true; } // logic for different screens starts here - CardLayout cardLayout = (CardLayout) gameFrame.getLayout(); - cardLayout.show(gameFrame, textBoxArray.get(currentBox).id); + if (textBoxArray.get(currentBox).id.equals("game-start")) { + try { + GameFrame.game = new GamePanel(GameFrame.main); //run GamePanel constructor + } 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); + } } else { currentBox = UtilityFunction.processBox(e, currentBox, textBoxArray); }