diff --git a/.gitignore b/.gitignore index fd379b3..044b33b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ local.properties .loadpath .classpath .project -.recommenders \ No newline at end of file +.recommenders +HeatUp/highscore.dat diff --git a/HeatUp/src/de/heatup/testing/Main.java b/HeatUp/src/de/heatup/testing/Main.java new file mode 100644 index 0000000..429b7a0 --- /dev/null +++ b/HeatUp/src/de/heatup/testing/Main.java @@ -0,0 +1,27 @@ +package de.heatup.testing; + +import java.awt.BorderLayout; +import javax.swing.JFrame; + +import de.heatup.ui.menu.HighscorePanel; + +public class Main extends JFrame { + + private static final long serialVersionUID = 1L; + private static HighscorePanel p = new HighscorePanel(); + + public Main() { + + this.setTitle("HeatUp! - Testing"); + this.setSize(800, 600); + this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); + + this.add(HighscorePanel.getHighscorePanel(), BorderLayout.CENTER); + this.setVisible(true); + } + + public static void main(String[] args) { + new Main(); + } + +} diff --git a/HeatUp/src/de/heatup/ui/PanelBuilder.java b/HeatUp/src/de/heatup/ui/PanelBuilder.java index 487b37a..749dde4 100644 --- a/HeatUp/src/de/heatup/ui/PanelBuilder.java +++ b/HeatUp/src/de/heatup/ui/PanelBuilder.java @@ -31,6 +31,8 @@ public class PanelBuilder { private static Player player01; + private static MapEngine me; + private static InstancedObjects instancedObjects; private static ImageLoader imageLoader; @@ -149,7 +151,7 @@ public class PanelBuilder { kb = new KeyBindings(player01); outerPanel.addKeyListener(kb); - MapEngine me; + //MapEngine me; if (map > 0) { me = new MapEngine(map); } else { @@ -161,11 +163,13 @@ public class PanelBuilder { * Highscore tests */ -// for (ScoreEntry score : me.getHighscoreHandler().getHighscores(me.getMapHash())) { -// Logger.write(score.getName()+" "+score.getScore()); -// } -// me.getHighscoreHandler().setHighscore(me.getMapHash(), "Daniel", 3134); -// me.getHighscoreHandler().saveHighscores(); + /** + * for (ScoreEntry score : me.getHighscoreHandler().getHighscores(me.getMapHash())) { + * Logger.write(score.getName()+" "+score.getScore()); + * } + * me.getHighscoreHandler().setHighscore(me.getMapHash(), "Daniel", 3134); + * me.getHighscoreHandler().saveHighscores(); + */ /** * Ende Highscore tests @@ -180,7 +184,11 @@ public class PanelBuilder { gameLoaded = true; } - + + public static MapEngine getMapEngine() { + return me; + } + public static ImageLoader getImageLoader() { return imageLoader; } diff --git a/HeatUp/src/de/heatup/ui/StatusPanelAdder.java b/HeatUp/src/de/heatup/ui/StatusPanelAdder.java index decdbf3..7b29690 100644 --- a/HeatUp/src/de/heatup/ui/StatusPanelAdder.java +++ b/HeatUp/src/de/heatup/ui/StatusPanelAdder.java @@ -128,6 +128,9 @@ public class StatusPanelAdder{ } else { tempBar.setValue(tempBar.getValue()+temping); } + if (tempBar.getValue()==110){ + Logger.write(Score.endScore()+""); + } /* * Änderung der Farbe der TempBar */ diff --git a/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java b/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java index caa29c6..825b751 100644 --- a/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java +++ b/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java @@ -1,5 +1,152 @@ package de.heatup.ui.menu; -public class HighscorePanel { +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import de.heatup.highscore.ScoreEntry; +import de.heatup.logging.Logger; +import de.heatup.mapengine.MapEngine; +import de.heatup.ui.FontLoader; +import de.heatup.ui.PanelBuilder; + +public class HighscorePanel { + + // dynamic panels + private static JPanel highscorePanel = new JPanel(); + private static JPanel headingPanel; + private static JPanel contentPanel; + + // default text panels and labels + private static JLabel headingLabel, dividerLabel; + private static GridLayout grid = new GridLayout(2, 1); + + + // Font Loader and font Settings + private static FontLoader fl = new FontLoader(); + private static Font ttfbase, emulogicHeading, emulogicDivider, emulogicSmall; + + // MapEngine used to get and set the Highscore + private static MapEngine me; + private static int scoreEntries = 0; + + public HighscorePanel() { + + initHighscorePanel(); + getHighscores(); + } + + private static void getHighscores() { + + // TODO : Init the MapEngine before a new game is started for getting highscores + me = PanelBuilder.getMapEngine(); + + // only for testing purposes +// me.getHighscoreHandler().setHighscore(me.getMapHash(), "Daniel", 3134); +// me.getHighscoreHandler().setHighscore(me.getMapHash(), "Tim", 2010); +// me.getHighscoreHandler().saveHighscores(); + + // count Score entries for building the GridLayout + for(ScoreEntry score : me.getHighscoreHandler().getHighscores(me.getMapHash())) { + scoreEntries++; + Logger.write(score.getName()+" "+score.getScore()); + } + } + + private static void initHighscorePanel() { + highscorePanel.setSize(new Dimension(800, 600)); + highscorePanel.setBackground(Color.BLACK); + highscorePanel.setFocusable(false); + + // build full highscorePanel + initHeadingPanel(); + initContentPanel(); + highscorePanel.add(headingPanel); + highscorePanel.add(contentPanel); + highscorePanel.setVisible(true); + } + + private static void initHeadingPanel() { + headingPanel = new JPanel(); + + headingPanel.setSize(new Dimension(800, 50)); + headingPanel.setBackground(Color.BLACK); + headingPanel.setFocusable(false); + headingPanel.setLayout(grid); + headingPanel.setVisible(true); + + ttfbase = FontLoader.getFont(); + emulogicHeading = ttfbase.deriveFont(Font.PLAIN, 20); + emulogicDivider = ttfbase.deriveFont(Font.PLAIN, 10); + emulogicSmall = ttfbase.deriveFont(Font.PLAIN, 12); + + headingLabel = new JLabel(); + headingLabel.setText("HeatUP! - Highscores"); + headingLabel.setForeground(Color.YELLOW); + headingLabel.setFont(emulogicHeading); + + dividerLabel = new JLabel(); + dividerLabel.setText("----------------------------------------"); + dividerLabel.setForeground(Color.YELLOW); + dividerLabel.setFont(emulogicDivider); + + headingPanel.add(headingLabel); + headingPanel.add(dividerLabel); + } + + private static void initContentPanel() { + contentPanel = new JPanel(); + + contentPanel.setSize(new Dimension(800, 550)); + contentPanel.setBackground(Color.BLACK); + contentPanel.setFocusable(false); + + contentPanel.setVisible(true); + + // GridLayout for Scores + JPanel scores = new JPanel(); + scores.setBackground(Color.BLACK); + scores.setFocusable(false); + scores.setVisible(true); + + getHighscores(); + + scores.setLayout(new GridLayout(0, scoreEntries)); + for(ScoreEntry score : me.getHighscoreHandler().getHighscores(me.getMapHash())) { + JLabel l = new JLabel(); + l.setBackground(Color.BLACK); + l.setForeground(Color.YELLOW); + l.setFont(emulogicSmall); + l.setVisible(true); + + l.setText(score.getName() + " ---> " + score.getScore()); + scores.add(l); + } + + contentPanel.add(scores); + } + + + public static JPanel getHighscorePanel() { + return highscorePanel; + } + + + public static void setHighscorePanel(JPanel highscorePanel) { + HighscorePanel.highscorePanel = highscorePanel; + } + + + public static JPanel getContentPanel() { + return contentPanel; + } + + + public static void setContentPanel(JPanel contentPanel) { + HighscorePanel.contentPanel = contentPanel; + } } diff --git a/HeatUp/src/de/heatup/ui/menu/MenuPanel.java b/HeatUp/src/de/heatup/ui/menu/MenuPanel.java index 156d57b..f22402d 100644 --- a/HeatUp/src/de/heatup/ui/menu/MenuPanel.java +++ b/HeatUp/src/de/heatup/ui/menu/MenuPanel.java @@ -165,8 +165,17 @@ public class MenuPanel { showHighscore.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { - // @TODO: implement show highscore - Logger.write("show highscore"); + + if(gameExists == 1) { + + menuPanel.setVisible(false); + + HighscorePanel p = new HighscorePanel(); + PanelBuilder.getOuterPanel().add(HighscorePanel.getHighscorePanel(), BorderLayout.CENTER); + Logger.write("show highscore"); + } else if (gameExists == 2) { + Logger.write("cant show scores while game is running"); + } } });