From 54d9a91f6a0c1346c9ca64f90136850861300ba2 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 16:59:40 +0200 Subject: [PATCH 01/12] Load highest score on startup --- data/io/SQLConnector.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/data/io/SQLConnector.java b/data/io/SQLConnector.java index 1170ade..1d1a639 100644 --- a/data/io/SQLConnector.java +++ b/data/io/SQLConnector.java @@ -169,6 +169,18 @@ public class SQLConnector } catch (SQLException e) { e.printStackTrace(); } + + Statement st4 = executeResultQuery("SELECT MAX(`score`) as score FROM `highscore` WHERE `songinstance`=(SELECT id FROM songinstance WHERE song=" + id + " AND difficulty='" + si.getDifficulty() + "')"); + try { + ResultSet rs4 = st4.getResultSet(); + if(rs4.next()) + { + int i = rs4.getInt(1); + si.setHighestScore(i); + } + } catch (SQLException e) { + e.printStackTrace(); + } } } else From 2fa9c3afe82cf52f676c3e55bce72e8bcc561002 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 16:59:52 +0200 Subject: [PATCH 02/12] Added two new sorting methods --- model/gameState/MenuState.java | 62 +++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/model/gameState/MenuState.java b/model/gameState/MenuState.java index 42ef389..ac53c35 100644 --- a/model/gameState/MenuState.java +++ b/model/gameState/MenuState.java @@ -24,7 +24,9 @@ import model.objects.highscore.Highscore; import audio.Song; import audio.SongInstance; import audio.sorting.SortALPHA; +import audio.sorting.SortAUTHOR; import audio.sorting.SortPLAYED; +import audio.sorting.SortSCORE; import control.GameStateManager; import control.GameStateManager.State; import control.button.ButtonEvent; @@ -102,9 +104,12 @@ public class MenuState extends GameState { else { ButtonHandler.getButton(1).setColor(GameModel.colors[0]); + ButtonHandler.getButton(2).setColor(GameModel.colors[3]); - ButtonHandler.getButton(5).setColor(GameModel.colors[1]); - ButtonHandler.getButton(6).setColor(GameModel.colors[4]); + ButtonHandler.getButton(3).setColor(GameModel.colors[1]); + ButtonHandler.getButton(4).setColor(GameModel.colors[2]); + ButtonHandler.getButton(5).setColor(GameModel.colors[4]); + ButtonHandler.getButton(6).setColor(GameModel.colors[5]); JoystickHandler.REPEAT = true; } @@ -187,19 +192,25 @@ public class MenuState extends GameState { subscreen = true; gsm.init(); generateSubScreenForeground(); - }else if(e.getButton().getButtonID() == 5){ - sh.sort(new SortALPHA()); - selected = 0; - sh.set(songs.indexOf(selectedToSong(selected))); - sh.play(); - }else if(e.getButton().getButtonID() == 6){ - sh.sort(new SortPLAYED()); - selected = 0; - sh.set(songs.indexOf(selectedToSong(selected))); - sh.play(); - }else if(e.getButton().getButtonID() == 3){ + }else if(e.getButton().getButtonID() == 2){ gsm.setState(control.GameStateManager.State.HELP_STATE); } + else + { + if(e.getButton().getButtonID() == 3){ + sh.sort(new SortALPHA()); + }else if(e.getButton().getButtonID() == 4){ + sh.sort(new SortAUTHOR()); + }else if(e.getButton().getButtonID() == 5){ + sh.sort(new SortPLAYED()); + }else if(e.getButton().getButtonID() == 6){ + sh.sort(new SortSCORE()); + } + + selected = 0; + sh.set(songs.indexOf(selectedToSong(selected))); + sh.play(); + } } if(e.getButton().getButtonID() == 0) @@ -334,23 +345,34 @@ public class MenuState extends GameState { //select g2.setColor(GameModel.colors[0]); - g2.fillOval(20, 860, 30, 30); - g2.drawString("Play", 55, 880); + g2.fillOval(20, 780, 30, 30); + g2.drawString("Play", 55, 800); //help g2.setColor(GameModel.colors[3]); - g2.fillOval(20, 900, 30, 30); - g2.drawString("Help", 55, 920); + g2.fillOval(20, 820, 30, 30); + g2.drawString("Help", 55, 840); //letters g2.setColor(GameModel.colors[1]); - g2.fillOval(20, 940, 30, 30); - g2.drawString("A-Z", 55, 960); + g2.fillOval(20, 860, 30, 30); + g2.drawString("A-Z", 55, 880); + + //most played + g2.setColor(GameModel.colors[2]); + g2.fillOval(20, 900, 30, 30); + g2.drawString("Author", 55, 920); //most played g2.setColor(GameModel.colors[4]); + g2.fillOval(20, 940, 30, 30); + g2.drawString("Most Played", 55, 960); + + //most played + g2.setColor(GameModel.colors[5]); g2.fillOval(20, 980, 30, 30); - g2.drawString("Most Played", 55, 1000); + g2.drawString("Highest Score", 55, 1000); + g2.dispose(); mainScreenBackground.createGraphics(); From fc86051f04447b4c8002206af2b530fb3bb5a702 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 17:00:02 +0200 Subject: [PATCH 03/12] Bugfixes --- model/gameState/PlayState.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/model/gameState/PlayState.java b/model/gameState/PlayState.java index bba92d1..bf9c29b 100644 --- a/model/gameState/PlayState.java +++ b/model/gameState/PlayState.java @@ -74,11 +74,6 @@ public class PlayState extends GameState { { p.getEnemysInPath().clear(); } - - for (int i = 1; i < ButtonHandler.getButtons().size(); i++) { - Button b = ButtonHandler.getButton(i); - b.setColor(Color.BLACK); - } ButtonHandler.getButton(1).setColor(sh.getCurrentSongInstance().getButtons().get(0).getColor()); @@ -158,7 +153,7 @@ public class PlayState extends GameState { } private void endGame() { - if(sh.getProgress()/1000 < 5000) + if(sh.getProgress()/1000 > 5000) { sql.addPlaydata(sh.getCurrentSong(), sh.getCurrentSongInstance(), sh.getProgress()/1000, enemies_missed, enemies_hit, buttons_pressed, joystick_moved); sh.getCurrentSongInstance().played(); From 803c0e170783cf32b4662bd0cc2f7de19171216a Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 17:00:14 +0200 Subject: [PATCH 04/12] Added highest score --- audio/Song.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/audio/Song.java b/audio/Song.java index 6ec5a2c..c31fd34 100644 --- a/audio/Song.java +++ b/audio/Song.java @@ -165,4 +165,15 @@ public class Song implements Comparable{ } return timesPlayed; } + + public int getHighestScore() + { + int highest = 0; + for(SongInstance s : songs) + { + if(s.getHighestScore() > highest) + highest = s.getHighestScore(); + } + return highest; + } } From e64fc291fe8e4bddfbf35d92cb717845ee644170 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 17:00:17 +0200 Subject: [PATCH 05/12] Added highest score --- audio/SongInstance.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/audio/SongInstance.java b/audio/SongInstance.java index 472b29b..0be1dd6 100644 --- a/audio/SongInstance.java +++ b/audio/SongInstance.java @@ -7,6 +7,7 @@ public class SongInstance { private String difficulty; private int timesPlayed; + private int highestScore; private List objects; private List buttons; @@ -15,6 +16,7 @@ public class SongInstance { { this.difficulty = difficulty; this.timesPlayed = 0; + this.highestScore = 0; objects = new ArrayList(); buttons = new ArrayList(); @@ -94,6 +96,14 @@ public class SongInstance { this.timesPlayed = timesPlayed; } + public int getHighestScore() { + return highestScore; + } + + public void setHighestScore(int highestScore) { + this.highestScore = highestScore; + } + public void played() { timesPlayed++; From c111a52f5228e2ef2394a86fac1d51ac4124022b Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 17:01:39 +0200 Subject: [PATCH 06/12] Sort on Author name A-Z --- audio/sorting/SortAUTHOR.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 audio/sorting/SortAUTHOR.java diff --git a/audio/sorting/SortAUTHOR.java b/audio/sorting/SortAUTHOR.java new file mode 100644 index 0000000..381e2dd --- /dev/null +++ b/audio/sorting/SortAUTHOR.java @@ -0,0 +1,14 @@ +package audio.sorting; + +import java.util.Comparator; + +import audio.Song; + +public class SortAUTHOR implements Comparator { + + @Override + public int compare(Song s1, Song s2) { + return s1.getAuthor().compareTo(s2.getAuthor()); + } + +} From 18d6a9dcbdbce89f1400d840b7ea13640e0173ee Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Mon, 6 Jul 2015 17:01:45 +0200 Subject: [PATCH 07/12] Sort on highest score --- audio/sorting/SortSCORE.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 audio/sorting/SortSCORE.java diff --git a/audio/sorting/SortSCORE.java b/audio/sorting/SortSCORE.java new file mode 100644 index 0000000..478eadd --- /dev/null +++ b/audio/sorting/SortSCORE.java @@ -0,0 +1,18 @@ +package audio.sorting; + +import java.util.Comparator; + +import audio.Song; + +public class SortSCORE implements Comparator { + + public int compare(Song s1, Song s2) { + if(s1.getHighestScore() < s2.getHighestScore()) + return 1; + else if(s1.getHighestScore() > s2.getHighestScore()) + return -1; + else + return s1.getTitle().compareTo(s2.getTitle()); + } + +} From 06cc34a8fefa30266a73a8705ea80e77e76300f9 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 7 Jul 2015 12:18:19 +0200 Subject: [PATCH 08/12] InfoPanel herdeelt --- model/objects/InfoPanel.java | 90 +++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 28 deletions(-) diff --git a/model/objects/InfoPanel.java b/model/objects/InfoPanel.java index 682b118..a8863d5 100644 --- a/model/objects/InfoPanel.java +++ b/model/objects/InfoPanel.java @@ -8,8 +8,11 @@ import java.awt.GradientPaint; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Transparency; +import java.awt.geom.Ellipse2D; import java.awt.image.VolatileImage; +import control.button.ButtonHandler; +import main.Window; import model.SongHandler; import model.gameState.PlayState; @@ -20,6 +23,7 @@ public class InfoPanel { private VolatileImage infoPanel; private SongHandler sh; private String time; + private int highscore; public InfoPanel(int x, int y, SongHandler sh){ this.x = x; @@ -28,16 +32,15 @@ public class InfoPanel { updateIPanel(); generateInfoPanel(); } - + + public void init(int highscore) + { + this.highscore = highscore; + updateIPanel(); + generateInfoPanel(); + } public void updateIPanel() { totalHighscore = "" + PlayState.currentScore; -// time = ""; -// long progress = (sh.getProgress() / 1000); -// time = progress%1000 + time; -// progress /= 1000; -// time = progress%1000 + ":" + time; -// progress /= 1000; -// time = progress + ":" + time; long progress = (sh.getProgress() / 1000); String millis = (((progress) % 1000) + "").length() > 3 ? ("" +((progress) % 1000)).substring(0, 2) : "" + ((progress) % 1000); @@ -53,37 +56,68 @@ public class InfoPanel { RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHints(rh); - -// g2.setColor(Color.GRAY); GradientPaint gp = new GradientPaint(0, 0, new Color(245,245,245), 256, 1024, Color.WHITE); g2.setPaint(gp); - g2.fillRect(x, y, 256, 1024); - - g2.setColor(Color.BLACK); - g2.drawRect(x, y, 255, 1023); Font scoreFont = new Font("OCR A Extended", Font.BOLD, 30); g2.setFont(scoreFont); + g2.setColor(Color.GREEN); - g2.fillRect(25, 100, (int)(2 * PlayState.lifePoints), 30); + g2.fillRect(25, 900, (int)(2 * PlayState.lifePoints), 30); + + g2.setColor(Color.YELLOW); + g2.fillRect(25, 950, (int)(2 * PlayState.comboScore), 30); g2.setColor(Color.BLACK); + + g2.drawRect(25, 900, 200, 30); + g2.drawRect(25, 950, 200, 30); + g2.drawString("Score: " + totalHighscore, 25, 75); - g2.drawRect(25, 100, 200, 30); - g2.drawRect(25, 300, 200, 700); - - g2.drawString(sh.getCurrentSong().getTitle(), 25, 200); - g2.drawString(sh.getCurrentSongInstance().getDifficulty(), 25, 230); - g2.drawString(sh.getCurrentSong().getAuthor(), 25, 260); - g2.drawString(time, 25, 290); - -// GradientPaint gp = new GradientPaint(300, 0, new Color(200,200,255), 256, 1024, Color.WHITE); -// g2.setPaint(gp); -// g2.fillRect(x, y, 256, 1024); + g2.drawString(sh.getCurrentSong().getTitle(), 25, 125); + g2.drawString(sh.getCurrentSong().getAuthor(), 25, 175); + g2.drawString("" + highscore, 25, 225); + g2.drawString(time, 25, 275); + + + if(!Window.ON_RASP){ + int width,height; + width = g2.getFontMetrics().stringWidth(""); + height = g2.getFontMetrics().getHeight(); - g2.setColor(Color.YELLOW); - g2.fillRect(25, 1000 - 7 * PlayState.comboScore, 200, 0 + 7 * PlayState.comboScore); + Ellipse2D oval1 = new Ellipse2D.Double(15, 700, 50, 50); + g2.setColor(ButtonHandler.getButton(1).getColor()); + g2.fill(oval1); + + Ellipse2D oval2 = new Ellipse2D.Double(75, 700, 50, 50); + g2.setColor(ButtonHandler.getButton(2).getColor()); + g2.fill(oval2); + + Ellipse2D oval3 = new Ellipse2D.Double(135, 700, 50, 50); + g2.setColor(ButtonHandler.getButton(3).getColor()); + g2.fill(oval3); + + Ellipse2D oval4 = new Ellipse2D.Double(40, 760, 50, 50); + g2.setColor(ButtonHandler.getButton(4).getColor()); + g2.fill(oval4); + + Ellipse2D oval5 = new Ellipse2D.Double(100, 760, 50, 50); + g2.setColor(ButtonHandler.getButton(5).getColor()); + g2.fill(oval5); + + Ellipse2D oval6 = new Ellipse2D.Double(160, 760, 50, 50); + g2.setColor(ButtonHandler.getButton(6).getColor()); + g2.fill(oval6); + } + +// g2.setColor(Color.BLACK); +// width = g2.getFontMetrics().stringWidth(""+i); +// g2.drawString(""+i, (int)oval.getCenterX()-width/2,(int)oval.getMaxY()+height); + + + + g2.dispose(); infoPanel.createGraphics(); } From 4cc41ea2c88a451d4e5c55f60838b79f0ab35cf5 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 7 Jul 2015 12:18:42 +0200 Subject: [PATCH 09/12] Kleuren ovalen locatie verandert --- model/gameState/PlayState.java | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/model/gameState/PlayState.java b/model/gameState/PlayState.java index bba92d1..8c88b18 100644 --- a/model/gameState/PlayState.java +++ b/model/gameState/PlayState.java @@ -70,6 +70,8 @@ public class PlayState extends GameState { buttons_pressed = 0; joystick_moved = 0; + infoPanel.init(sql.getHighscore(sh.getCurrentSong(), sh.getCurrentSongInstance()).getScore()); + for(Path p : area.paths) { p.getEnemysInPath().clear(); @@ -192,19 +194,19 @@ public class PlayState extends GameState { player.draw(g2); } catch (Exception e) { } - if(!Window.ON_RASP){ - int width,height; - width = g2.getFontMetrics().stringWidth(""); - height = g2.getFontMetrics().getHeight(); - for (int i = 1; i < ButtonHandler.getButtons().size(); i++) { - Ellipse2D oval = new Ellipse2D.Double(880+(50*i), 0, 50, 50); - g2.setColor(ButtonHandler.getButton(i).getColor()); - g2.fill(oval); - g2.setColor(Color.BLACK); - width = g2.getFontMetrics().stringWidth(""+i); - g2.drawString(""+i, (int)oval.getCenterX()-width/2,(int)oval.getMaxY()+height); - } - } +// if(!Window.ON_RASP){ +// int width,height; +// width = g2.getFontMetrics().stringWidth(""); +// height = g2.getFontMetrics().getHeight(); +// for (int i = 1; i < ButtonHandler.getButtons().size(); i++) { +// Ellipse2D oval = new Ellipse2D.Double(880+(50*i), 0, 50, 50); +// g2.setColor(ButtonHandler.getButton(i).getColor()); +// g2.fill(oval); +// g2.setColor(Color.BLACK); +// width = g2.getFontMetrics().stringWidth(""+i); +// g2.drawString(""+i, (int)oval.getCenterX()-width/2,(int)oval.getMaxY()+height); +// } +// } } @Override From e349ec9fa6d6e33a45a3eecba92d6f26d9659f9f Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 7 Jul 2015 12:18:55 +0200 Subject: [PATCH 10/12] Een highscore ophalen --- data/io/SQLConnector.java | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/data/io/SQLConnector.java b/data/io/SQLConnector.java index 1170ade..d64956a 100644 --- a/data/io/SQLConnector.java +++ b/data/io/SQLConnector.java @@ -8,8 +8,6 @@ import java.sql.Statement; import java.util.ArrayList; import java.util.List; -import com.sun.crypto.provider.RSACipher; - import model.objects.highscore.Highscore; import audio.Song; import audio.SongInstance; @@ -48,6 +46,30 @@ public class SQLConnector } } + public Highscore getHighscore(Song s, SongInstance si) + { + String query = "SELECT * FROM highscore WHERE songinstance = (SELECT id FROM songinstance WHERE difficulty='" + si.getDifficulty() + "' AND song=(SELECT id FROM song WHERE folder='" + s.getFolder() + "')) ORDER BY score DESC LIMIT 1"; + //System.out.println(query); + Statement st = executeResultQuery(query); + ResultSet result = null; + try { + result = st.getResultSet(); + } catch (SQLException e1) { + e1.printStackTrace(); + } + + Highscore hsc = null; + + try { + result.next(); + hsc = new Highscore(si, result.getString("username"), result.getInt("score"), result.getDate("date").getTime()); + } catch (SQLException e) { + e.printStackTrace(); + } + + return hsc; + } + public List getHighscores(Song s, SongInstance si) { String query = "SELECT * FROM highscore WHERE songinstance = (SELECT id FROM songinstance WHERE difficulty='" + si.getDifficulty() + "' AND song=(SELECT id FROM song WHERE folder='" + s.getFolder() + "')) ORDER BY score DESC"; From b4c0995ce84426f149394421b54461b7ed742c5f Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 7 Jul 2015 12:41:55 +0200 Subject: [PATCH 11/12] Info panel af gemaakt --- model/objects/InfoPanel.java | 39 ++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/model/objects/InfoPanel.java b/model/objects/InfoPanel.java index a8863d5..6eddab8 100644 --- a/model/objects/InfoPanel.java +++ b/model/objects/InfoPanel.java @@ -59,9 +59,6 @@ public class InfoPanel { GradientPaint gp = new GradientPaint(0, 0, new Color(245,245,245), 256, 1024, Color.WHITE); g2.setPaint(gp); - Font scoreFont = new Font("OCR A Extended", Font.BOLD, 30); - g2.setFont(scoreFont); - g2.setColor(Color.GREEN); g2.fillRect(25, 900, (int)(2 * PlayState.lifePoints), 30); @@ -73,12 +70,24 @@ public class InfoPanel { g2.drawRect(25, 900, 200, 30); g2.drawRect(25, 950, 200, 30); - g2.drawString("Score: " + totalHighscore, 25, 75); - g2.drawString(sh.getCurrentSong().getTitle(), 25, 125); - g2.drawString(sh.getCurrentSong().getAuthor(), 25, 175); - g2.drawString("" + highscore, 25, 225); - g2.drawString(time, 25, 275); - + Font scoreFont = new Font("OCR A Extended", Font.BOLD, 35); + g2.setFont(scoreFont); + g2.drawString("Score: ", 25, 75); + + Font scoreFont2 = new Font("OCR A Extended", Font.BOLD, 25); + g2.setFont(scoreFont2); + g2.drawString("Title: ", 25, 185); + g2.drawString("Time: ", 25, 265); + g2.drawString("Best: ", 25, 345); + + + Font scoreFont3 = new Font("OCR A Extended", Font.BOLD, 35); + g2.setFont(scoreFont3); + g2.drawString("" + totalHighscore, 25, 105); + g2.drawString(sh.getCurrentSong().getTitle(), 25, 215); + g2.drawString(time, 25, 295); + g2.drawString("" + highscore, 25, 375); + if(!Window.ON_RASP){ int width,height; @@ -86,27 +95,27 @@ public class InfoPanel { height = g2.getFontMetrics().getHeight(); - Ellipse2D oval1 = new Ellipse2D.Double(15, 700, 50, 50); + Ellipse2D oval1 = new Ellipse2D.Double(25, 700, 50, 50); g2.setColor(ButtonHandler.getButton(1).getColor()); g2.fill(oval1); - Ellipse2D oval2 = new Ellipse2D.Double(75, 700, 50, 50); + Ellipse2D oval2 = new Ellipse2D.Double(85, 700, 50, 50); g2.setColor(ButtonHandler.getButton(2).getColor()); g2.fill(oval2); - Ellipse2D oval3 = new Ellipse2D.Double(135, 700, 50, 50); + Ellipse2D oval3 = new Ellipse2D.Double(145, 700, 50, 50); g2.setColor(ButtonHandler.getButton(3).getColor()); g2.fill(oval3); - Ellipse2D oval4 = new Ellipse2D.Double(40, 760, 50, 50); + Ellipse2D oval4 = new Ellipse2D.Double(50, 760, 50, 50); g2.setColor(ButtonHandler.getButton(4).getColor()); g2.fill(oval4); - Ellipse2D oval5 = new Ellipse2D.Double(100, 760, 50, 50); + Ellipse2D oval5 = new Ellipse2D.Double(110, 760, 50, 50); g2.setColor(ButtonHandler.getButton(5).getColor()); g2.fill(oval5); - Ellipse2D oval6 = new Ellipse2D.Double(160, 760, 50, 50); + Ellipse2D oval6 = new Ellipse2D.Double(170, 760, 50, 50); g2.setColor(ButtonHandler.getButton(6).getColor()); g2.fill(oval6); } From bad1f459aaf93534b70c537f5e928c5b1239266a Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 8 Jul 2015 13:05:19 +0200 Subject: [PATCH 12/12] error gefixed als er geen highscore is --- model/objects/InfoPanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/objects/InfoPanel.java b/model/objects/InfoPanel.java index 6eddab8..c704af7 100644 --- a/model/objects/InfoPanel.java +++ b/model/objects/InfoPanel.java @@ -23,7 +23,7 @@ public class InfoPanel { private VolatileImage infoPanel; private SongHandler sh; private String time; - private int highscore; + private int highscore = 0; public InfoPanel(int x, int y, SongHandler sh){ this.x = x;