diff --git a/HeatUp/src/de/heatup/ui/KeyBindings.java b/HeatUp/src/de/heatup/ui/KeyBindings.java index dfc1273..2f50258 100644 --- a/HeatUp/src/de/heatup/ui/KeyBindings.java +++ b/HeatUp/src/de/heatup/ui/KeyBindings.java @@ -10,6 +10,7 @@ import de.heatup.timers.HardwareResetTimers; import de.heatup.ui.actionPanel.ActionControl; import de.heatup.ui.actionPanel.ActionWatcher; import de.heatup.ui.actionPanel.HardewareManipulate; +import de.heatup.ui.menu.MenuPanel; public class KeyBindings extends KeyAdapter { final private static int progressBarTimer = 7; @@ -44,8 +45,17 @@ public class KeyBindings extends KeyAdapter { case KeyEvent.VK_ESCAPE: if ( esc ) { esc = false; + MenuPanel.setStartGameLabel("[ Spiel Starten ]"); + MenuPanel.setShowCreditsLabel("[ Credits anzeigen ]"); + MenuPanel.setShowTutorialLabel("[ Credits anzeigen ]"); + MenuPanel.setShowHighscoreLabel("[ Highscore anzeigen ]"); + } else { esc = true; + MenuPanel.setStartGameLabel(" weiter mit >>ESC<< "); + MenuPanel.setShowCreditsLabel(""); + MenuPanel.setShowTutorialLabel(""); + MenuPanel.setShowHighscoreLabel(""); } break; case KeyEvent.VK_A: diff --git a/HeatUp/src/de/heatup/ui/Main.java b/HeatUp/src/de/heatup/ui/Main.java index 5857ef4..154ccaf 100644 --- a/HeatUp/src/de/heatup/ui/Main.java +++ b/HeatUp/src/de/heatup/ui/Main.java @@ -26,6 +26,7 @@ import de.heatup.objects.StaticObject; import de.heatup.timers.HardwareResetTimers; import de.heatup.ui.actionPanel.ActionControl; import de.heatup.ui.actionPanel.ActionWatcher; +import de.heatup.ui.menu.CreditsPanel; import de.heatup.ui.menu.MenuPanel; @@ -51,6 +52,8 @@ public class Main extends JFrame implements Runnable { private static JPanel leftPanel; private static JPanel rightPanel; private static JPanel actionPanel; + private static JPanel creditsPanel; + private static JPanel menuPanel; @@ -100,30 +103,35 @@ public class Main extends JFrame implements Runnable { MenuPanel.setMenuPanel(); menuPanel = MenuPanel.getMenuPanel(); + + CreditsPanel.setCreditsPanel(); + creditsPanel = CreditsPanel.getCreditsPanel(); outerPanel.add(statusPanel,BorderLayout.NORTH); outerPanel.add(leftPanel, BorderLayout.WEST); outerPanel.add(rightPanel, BorderLayout.EAST); outerPanel.add(gamePanel,BorderLayout.CENTER); outerPanel.add(actionPanel,BorderLayout.SOUTH); - - outerPanel.add(menuPanel, BorderLayout.CENTER); + outerPanel.add(creditsPanel, BorderLayout.CENTER); + outerPanel.add(menuPanel, BorderLayout.CENTER); add(outerPanel); - pack(); - setVisible(true); + pack(); + setVisible(true); /* * hier menue bauen */ PanelBuilder.setPanels(actionPanel, outerPanel, statusPanel, gamePanel); - PanelBuilder.startMenu(); + //PanelBuilder.startMenu(); + PanelBuilder.actionPanel.setBackground(Color.BLACK); + PanelBuilder.statusPanel.setBackground(Color.BLACK); + /* * entfernen wenn getter verwendet wird. */ player01 = PanelBuilder.getPlayer(); - /* * Wenn die Variable fullscreen gesetzt ist, wir er hier eingeschaltet. @@ -150,7 +158,9 @@ public class Main extends JFrame implements Runnable { } - + public static boolean getPause() { + return pause; + } public static void main(String[] args) { @@ -162,7 +172,7 @@ public class Main extends JFrame implements Runnable { @Override public void run() { final Main frame = new Main(); - frame.repaint(); + frame.repaint(); Thread ht= new Thread(){ @Override @@ -280,6 +290,9 @@ public class Main extends JFrame implements Runnable { PanelBuilder.tick(); } else if ( pause ) { // Hier einfügen was passiert wenn ESC gedrückt wird + + outerPanel.setBackground(Color.BLACK); + gamePanel.setVisible(false); actionPanel.setVisible(false); statusPanel.setVisible(false); diff --git a/HeatUp/src/de/heatup/ui/PanelBuilder.java b/HeatUp/src/de/heatup/ui/PanelBuilder.java index 01265eb..487b37a 100644 --- a/HeatUp/src/de/heatup/ui/PanelBuilder.java +++ b/HeatUp/src/de/heatup/ui/PanelBuilder.java @@ -109,12 +109,12 @@ public class PanelBuilder { //StatusPanelAdder.createPanel(); // ActionPanel bauen - //ActionControl.setPanel(actionPanel); - + //ActionControl.setPanel(actionPanel); //createGame(1); /* wird eigentlich vom menue aufgerufen */ } + public static JPanel getGamePanel() { return gamePanel; } diff --git a/HeatUp/src/de/heatup/ui/StatusPanelAdder.java b/HeatUp/src/de/heatup/ui/StatusPanelAdder.java index 4e51176..decdbf3 100644 --- a/HeatUp/src/de/heatup/ui/StatusPanelAdder.java +++ b/HeatUp/src/de/heatup/ui/StatusPanelAdder.java @@ -21,34 +21,33 @@ import de.heatup.ui.statusPanel.Timer; public class StatusPanelAdder{ - private static JPanel panel; - private static int hgap=32; - private static int vgap=9; - private static int modifier=-1; - private static int temping=0; - private static int manipulations=0; + private static Color tempBarColor= new Color(0,0,255); private static double tempPlus=0.0; private static double tempMinus=0.0; private static double barSpeed=0.01; private static float red; private static float green; private static float blue; - private static boolean ende=false; + private static Font emulogicheading; + private static Font emulogictext; + private static Font emulogictextsmall; + private static Font ttfBase; + private static FontLoader fl=new FontLoader(); + private static int vgap=9; + private static int modifier=-1; + private static int temping=0; + private static int manipulations=0; private static JLabel labelTempC= new JLabel("§"); private static JLabel labelTemp= new JLabel("temperature"); - private static JProgressBar tempBar; private static JLabel labelScore= new JLabel("score"); private static JLabel scoreLabel= new JLabel(" "); private static JLabel labelPowerUp = new JLabel("! P o w e r U p !"); private static JLabel powerUpLabel = new JLabel(" "); private static JLabel labelTime=new JLabel("Time"); private static JLabel timeLabel = new JLabel("0"); - private static Font emulogicheading; - private static Font emulogictext; - private static Font emulogictextsmall; - private static Font ttfBase; - private static FontLoader fl=new FontLoader(); - private static Color tempBarColor= new Color(0,0,255); + private static JPanel panel; + private static JProgressBar tempBar; + @@ -160,6 +159,7 @@ public class StatusPanelAdder{ labelTemp.setHorizontalAlignment(SwingConstants.CENTER); tempBar= new JProgressBar(0,110); tempBar.setValue(30); + tempBar.setBorderPainted(false); labelTempC.setFont(emulogictext); labelTempC.setHorizontalAlignment(SwingConstants.CENTER); labelTempC.setForeground(Color.YELLOW); diff --git a/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java b/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java index a344ef5..edba565 100644 --- a/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java +++ b/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java @@ -36,6 +36,9 @@ public class ActionControl{ actionLabel = new JLabel(); bigActionLabel = new JLabel(); bar = new JProgressBar(); + bar.setForeground(Color.YELLOW); + bar.setBackground(Color.BLACK); + bar.setBorderPainted(false); //actionLabel.setFont(new Font("Arial", Font.CENTER_BASELINE, 16)); actionLabel.setFont(emulogicaction); actionLabel.setHorizontalAlignment(JLabel.CENTER); @@ -109,6 +112,7 @@ public class ActionControl{ if(bar.getValue()>1){ if(tmpCount%2==0)bar.setValue(bar.getValue()-1); if(bar.getValue()<3)bar.setValue(0); + } }else{ if(tmpCount%3==0)bar.setValue(bar.getValue()-1); diff --git a/HeatUp/src/de/heatup/ui/menu/CreditsPanel.java b/HeatUp/src/de/heatup/ui/menu/CreditsPanel.java index 47601e5..7518a7d 100644 --- a/HeatUp/src/de/heatup/ui/menu/CreditsPanel.java +++ b/HeatUp/src/de/heatup/ui/menu/CreditsPanel.java @@ -1,13 +1,18 @@ package de.heatup.ui.menu; +import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import javax.swing.JLabel; import javax.swing.JPanel; +import de.heatup.logging.Logger; import de.heatup.ui.FontLoader; +import de.heatup.ui.PanelBuilder; public class CreditsPanel { @@ -19,11 +24,12 @@ public class CreditsPanel { private static Font emulogic; private static Font emulogicHeadline; private static Font emulogicDivider; + private static Font emulogicSmall; private static Font ttfbase; // panels and labels - private static JPanel headline, divider, divider2, name1, name2, name3, name4, name5; - private static JLabel headlineLabel, dividerLabel, dividerLabel2, name1Label, name2Label, name3Label, name4Label, name5Label; + private static JPanel headline, divider, divider2, name1, name2, name3, name4, name5, exit; + private static JLabel headlineLabel, dividerLabel, dividerLabel2, name1Label, name2Label, name3Label, name4Label, name5Label, exitLabel; public CreditsPanel() { } @@ -36,6 +42,7 @@ public class CreditsPanel { emulogicHeadline = ttfbase.deriveFont(Font.PLAIN, 28); emulogic = ttfbase.deriveFont(Font.PLAIN, 12); emulogicDivider = ttfbase.deriveFont(Font.PLAIN, 20); + emulogicSmall = ttfbase.deriveFont(Font.PLAIN, 10); createCredits(); } @@ -106,6 +113,26 @@ public class CreditsPanel { name5Label.setFont(emulogic); name5.add(name5Label); + exit = new JPanel(); + exit.setBackground(Color.BLACK); + + exitLabel = new JLabel("[ zurück zum Menü ]"); + exitLabel.setForeground(Color.YELLOW); + exitLabel.setFont(emulogicSmall); + + exitLabel.addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + // @TODO: implement show credits + CreditsPanel.getCreditsPanel().setVisible(false); + + PanelBuilder.getOuterPanel().add(MenuPanel.getMenuPanel(), BorderLayout.CENTER); + MenuPanel.getMenuPanel().setVisible(true); + + Logger.write("back to menu"); + } + }); + + exit.add(exitLabel); credits.add(headline); @@ -116,10 +143,11 @@ public class CreditsPanel { credits.add(name4); credits.add(name5); credits.add(divider2); + credits.add(exit); } public static JPanel getCreditsPanel() { - credits.setVisible(false); + credits.setVisible(true); return credits; } } diff --git a/HeatUp/src/de/heatup/ui/menu/MenuPanel.java b/HeatUp/src/de/heatup/ui/menu/MenuPanel.java index 7b4fe10..156d57b 100644 --- a/HeatUp/src/de/heatup/ui/menu/MenuPanel.java +++ b/HeatUp/src/de/heatup/ui/menu/MenuPanel.java @@ -7,8 +7,10 @@ import java.awt.event.MouseEvent; import javax.swing.JLabel; import javax.swing.JPanel; +import sun.security.util.PendingException; import de.heatup.logging.Logger; import de.heatup.ui.FontLoader; +import de.heatup.ui.KeyBindings; import de.heatup.ui.Main; import de.heatup.ui.PanelBuilder; import de.heatup.ui.StatusPanelAdder; @@ -38,8 +40,28 @@ public class MenuPanel { /** not in usage yet */ } + public static JLabel getStartGameLabel() { + return startGame; + } + + public static void setStartGameLabel(String text) { + startGame.setText(text); + } + + public static void setShowCreditsLabel(String text) { + showCredits.setText(text); + } + + public static void setShowTutorialLabel(String text) { + showTutorial.setText(text); + } + + public static void setShowHighscoreLabel(String text) { + showHighscore.setText(text); + } + public static void setMenuPanel() { - + menuPanel.setPreferredSize(new Dimension(800,600)); menuPanel.setFocusable(false); @@ -55,11 +77,11 @@ public class MenuPanel { createHighscore(); createCredits(); createTutorial(); - + buildMenuPanel(); } - public static JPanel getMenuPanel() { + public static JPanel getMenuPanel() { menuPanel.setVisible(true); return menuPanel; } @@ -71,41 +93,43 @@ public class MenuPanel { start = new JPanel(); start.setBackground(Color.BLACK); - startGame = new JLabel("[ Spiel starten ]"); + startGame = new JLabel(); + startGame.setText("[ Spiel starten ]"); startGame.setForeground(Color.YELLOW); startGame.setFont(emulogic); startGame.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { - // @TODO: implement start game - - // just a trie - // StatusPanel bauen - StatusPanelAdder.setPanel(PanelBuilder.statusPanel); - StatusPanelAdder.createPanel(); + if(gameExists == 1) { + + // StatusPanel bauen + StatusPanelAdder.setPanel(PanelBuilder.statusPanel); + StatusPanelAdder.createPanel(); - // ActionPanel bauen - ActionControl.setPanel(PanelBuilder.actionPanel); - - - - PanelBuilder.createGame(1); - gameExists = 2; - menuPanel.setVisible(false); - - PanelBuilder.getOuterPanel().add(PanelBuilder.getGamePanel(),BorderLayout.CENTER); - -// PanelBuilder.getGamePanel().setSize(800, 600); -// PanelBuilder.getGamePanel().setVisible(true); - - - //** game, action, status panel redraw and check visibility */ - - Logger.write("Game Started via menu"); + // ActionPanel bauen + ActionControl.setPanel(PanelBuilder.actionPanel); + + + + PanelBuilder.createGame(1); + gameExists = 2; + menuPanel.setVisible(false); + + PanelBuilder.getOuterPanel().add(PanelBuilder.getGamePanel(),BorderLayout.CENTER); + + //** game, action, status panel redraw and check visibility */ + + Logger.write("Game Started via menu"); + } else if (gameExists == 2) { + if(Main.getPause()) { + + } + Logger.write("game already started"); + } } }); - start.add(startGame); + start.add(startGame); } /** @@ -121,8 +145,7 @@ public class MenuPanel { endGame.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { - // @TODO: implement end game - Logger.write("game ended"); + System.exit(0); } }); @@ -163,10 +186,16 @@ public class MenuPanel { showCredits.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { - // @TODO: implement show credits - menuPanel.setVisible(false); - Logger.write("show credits"); + if(gameExists == 1) { + + menuPanel.setVisible(false); + PanelBuilder.getOuterPanel().add(CreditsPanel.getCreditsPanel(), BorderLayout.CENTER); + + Logger.write("show credits"); + } else if(gameExists == 2) { + Logger.write("cant show credits while game is running"); + } } }); @@ -203,5 +232,6 @@ public class MenuPanel { menuPanel.add(highscore); menuPanel.add(credits); menuPanel.add(tutorial); + } }