소스 검색

Bugfix/everything

# Conflicts:
#	model/SongHandler.java
#	model/gameState/PlayState.java
jancoow 10 년 전
부모
커밋
ed1f44299e

+ 6 - 1
audio/Song.java

@@ -12,7 +12,7 @@ import javax.sound.sampled.AudioInputStream;
 import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.UnsupportedAudioFileException;
 
-public class Song {
+public class Song implements Comparable<Song>{
 
 	private String title;
 	private String subtitle;
@@ -150,4 +150,9 @@ public class Song {
 	public void close()
 	{
 	}
+
+	@Override
+	public int compareTo(Song s) {
+		return getTitle().compareTo(s.getTitle());
+	}
 }

+ 1 - 1
audio/SongInstance.java

@@ -66,7 +66,7 @@ public class SongInstance {
 		
 		for(ButtonInstance i : buttons)
 		{
-			if(i.getTime() >= progress)
+			if(i.getTime() > progress)
 			{
 				return b;
 			}

+ 14 - 0
audio/sorting/SortALPHA.java

@@ -0,0 +1,14 @@
+package audio.sorting;
+
+import java.util.Comparator;
+
+import audio.Song;
+
+public class SortALPHA implements Comparator<Song> {
+
+	@Override
+	public int compare(Song s1, Song s2) {
+		return s1.getTitle().compareTo(s2.getTitle());
+	}
+
+}

+ 14 - 0
audio/sorting/SortPLAYED.java

@@ -0,0 +1,14 @@
+package audio.sorting;
+
+import java.util.Comparator;
+
+import audio.Song;
+
+public class SortPLAYED implements Comparator<Song> {
+
+	@Override
+	public int compare(Song s1, Song s2) {
+		return s1.getAuthor().compareTo(s2.getAuthor());
+	}
+
+}

+ 12 - 2
control/GameControl.java

@@ -2,7 +2,6 @@ package control;
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.TimerTask;
 
 import javax.swing.Timer;
 
@@ -29,6 +28,18 @@ public class GameControl implements JoystickListener, ButtonListener, ActionList
 		view.setIgnoreRepaint(true);
 		update = new Timer(1000/60,this);
 		update.start();
+//		Timer update = new Timer();
+//		update.schedule(new TimerTask() {
+//			
+//			@Override
+//			public void run() {
+//				long currentTime = System.currentTimeMillis();
+//				model.update(currentTime - lastTime);
+//				lastTime = currentTime;
+//				view.repaint();			
+//				System.out.println("Test");
+//			}
+//		}, 0,1000/120);
 	}
 
 	@Override
@@ -55,5 +66,4 @@ public class GameControl implements JoystickListener, ButtonListener, ActionList
 		lastTime = currentTime;
 		view.repaint();				
 	}
-
 }

+ 15 - 3
control/GameStateManager.java

@@ -1,5 +1,6 @@
 package control;
 
+import java.awt.Color;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -8,6 +9,8 @@ import model.gameState.GameState;
 import model.gameState.MenuState;
 import model.gameState.PlayState;
 import model.gameState.TitleState;
+import control.button.Button;
+import control.button.ButtonHandler;
 
 public class GameStateManager {
 
@@ -27,24 +30,33 @@ public class GameStateManager {
 		gamestates.add(new TitleState(this, sh));
 		gamestates.add(new MenuState(this, sh));
 		gamestates.add(new PlayState(this, sh));
-		currentState = gamestates.get(0);
+		setState(State.TITLE_STATE);
 	}
 	
 	public void setState(State st)
 	{
 		currentState = gamestates.get(st.ordinal());
-		currentState.init();
+		init();
 	}
 
 	public void next() {
 		index++;
 		index %= gamestates.size();
 		currentState = gamestates.get(index);
-		currentState.init();
+		init();
 	}
 	
 	public void update(float factor){		
 		currentState.update(factor);
 		fps = (int) (60/(factor/10));
 	}
+	
+	public void init()
+	{
+		for (int i = 1; i < ButtonHandler.getButtons().size(); i++) {
+			Button b = ButtonHandler.getButton(i);
+			b.setColor(Color.BLACK);
+		}
+		currentState.init();
+	}
 }

+ 1 - 4
control/LedHandler.java

@@ -15,10 +15,7 @@ public class LedHandler {
 	    try {
 	        p = Runtime.getRuntime().exec("sudo python led.py");
 	        inp = new BufferedReader( new InputStreamReader(p.getInputStream()) );
-	        out = new BufferedWriter( new OutputStreamWriter(p.getOutputStream()) );
-	        
-	        //setLed(15, 100, 100, 100);	        
-	        //strobo();        
+	        out = new BufferedWriter( new OutputStreamWriter(p.getOutputStream()) );      
 	    }
 	    catch (Exception err) {
 	        err.printStackTrace();

+ 1 - 1
main/Window.java

@@ -61,7 +61,7 @@ public class Window extends JFrame {
 		final SongHandler sh = new SongHandler();
 		GameStateManager gsm = new GameStateManager(sh);
 		GameView view = new GameView(led,gsm);
-		GameModel model = new GameModel(sh, gsm);
+		GameModel model = new GameModel(sh, gsm, led);
 		GameControl control = new GameControl(model, view,gsm);
 		setContentPane(view);
 		

+ 24 - 11
model/GameModel.java

@@ -2,24 +2,37 @@ package model;
 
 import java.awt.Color;
 
+import main.Window;
 import control.GameStateManager;
+import control.LedHandler;
 import control.button.ButtonHandler;
 
-public class GameModel{
-	
-	public static Color[] colors = {Color.GREEN,Color.YELLOW,Color.RED,Color.MAGENTA,Color.CYAN,Color.WHITE};
+public class GameModel {
+
+	public static Color[] colors = { Color.GREEN, Color.YELLOW, Color.RED, Color.MAGENTA, Color.CYAN, Color.WHITE };
 	private GameStateManager gsm;
-	
-	public GameModel(SongHandler sh, GameStateManager gsm)
-	{
+	private LedHandler led;
+
+	public GameModel(SongHandler sh, GameStateManager gsm, LedHandler led) {
 		this.gsm = gsm;
-		
-		for(int i = 1; i < ButtonHandler.getButtons().size(); i++){
-			ButtonHandler.getButtons().get(i).setColor(colors[i-1]);;
+		this.led = led;
+
+		for (int i = 1; i < ButtonHandler.getButtons().size(); i++) {
+			ButtonHandler.getButtons().get(i).setColor(colors[i - 1]);
+			;
 		}
 	}
-	
-	public void update(float factor){	
+
+	public void update(float factor) {
 		gsm.update(factor);
+
+		Color c = colors[(int) (Math.random() * (colors.length - 1) + 1)];
+
+		if (Window.ON_RASP) {
+			for (int i = 7; i < 54; i++) {
+				led.setLed(i, c.getRed(), c.getGreen(), c.getBlue());
+			}
+			led.show();
+		}
 	}
 }

+ 11 - 1
model/SongHandler.java

@@ -2,6 +2,8 @@ package model;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 import main.Window;
@@ -9,6 +11,7 @@ import audio.AudioPlayer;
 import audio.Song;
 import audio.SongInstance;
 import audio.io.DirScanner;
+import audio.sorting.SortALPHA;
 
 public class SongHandler {
 	
@@ -38,7 +41,9 @@ public class SongHandler {
 			dir = new File(System.getProperty( "user.home" ) + "/Documents/songs/");
 		
 		songs = DirScanner.scanDirectories(dir);
-		System.out.println(songs.size());
+		
+		Collections.sort(songs, new SortALPHA());
+		
 		updatePlayer();
 	}
 	
@@ -109,5 +114,10 @@ public class SongHandler {
 		p.play();
 	}
 	
+	public void sort(Comparator<Song> sorter)
+	{
+		Collections.sort(songs, sorter);
+	}
+	
 	
 }

+ 38 - 8
model/gameState/MenuState.java

@@ -3,6 +3,7 @@ package model.gameState;
 import image.Images;
 import image.Images.ImageType;
 
+import java.awt.AlphaComposite;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.GradientPaint;
@@ -21,8 +22,11 @@ import model.objects.DifficultyButton;
 import model.objects.MenuButton;
 import audio.Song;
 import audio.SongInstance;
+import audio.sorting.SortALPHA;
+import audio.sorting.SortPLAYED;
 import control.GameStateManager;
 import control.button.ButtonEvent;
+import control.button.ButtonHandler;
 import control.joystick.Joystick;
 import control.joystick.JoystickEvent;
 
@@ -34,7 +38,7 @@ public class MenuState extends GameState {
 
 	private int animationcounter;
 	private boolean subscreen, startanimation;
-	private VolatileImage mainScreenBackground, subScreenBackground;
+	private VolatileImage mainScreenBackground, subScreenBackground, subScreenForeground;
 	
 	int yPosDiffButton = 900;
 	private int difSelect=0;
@@ -59,11 +63,16 @@ public class MenuState extends GameState {
 		buttons.add(new MenuButton(-600, 350, 1.7, 30, Color.yellow,selectedToSong(selected+1)));
 		buttons.add(new MenuButton(-600, 450, 1.7, 30, Color.WHITE,selectedToSong(selected+2)));
 		buttons.get(2).setSelected(true);
-		generateMainScreenBackground();		
+		generateMainScreenBackground();	
+		generateSubScreenBackground();
 	}
 	@Override
 	public void init() {
+		ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
+		ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
 		
+		ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
+		ButtonHandler.getButton(6).setColor(GameModel.colors[4]);
 	}
 
 	@Override
@@ -96,7 +105,6 @@ public class MenuState extends GameState {
 	 			buttons2.add(new DifficultyButton(yPosDiffButton-instanceNr,si.getDifficulty(), GameModel.colors[i-1]));
 	 			instanceNr += 100;
 	 		}
-	 		
 	     }
 	     index++;
 	}
@@ -111,6 +119,7 @@ public class MenuState extends GameState {
 		}
 		if(subscreen) {
 			g2.drawImage(subScreenBackground,0,0,1280,1024,null);
+			g2.drawImage(subScreenForeground,0,0,1280,1024,null);
 			index%=25;
 			int y = (index/5)*75;
 			int x = (index%5)*75;
@@ -131,9 +140,17 @@ public class MenuState extends GameState {
 		}else{										//Screen for selecting song
 			if(e.getButton().getButtonID() == 1){
 				subscreen = true;
-				generateSubScreenBackground();
+				generateSubScreenForeground();
 			}else if(e.getButton().getButtonID() == 2){
 				subscreen = false;
+			}else if(e.getButton().getButtonID() == 5){
+				sh.sort(new SortALPHA());
+				oldselected = 1;
+				selected = 0;
+			}else if(e.getButton().getButtonID() == 6){
+				sh.sort(new SortPLAYED());
+				oldselected = 1;
+				selected = 0;
 			}	
 		}
 	}
@@ -157,7 +174,7 @@ public class MenuState extends GameState {
 				}
 			}
 			sh.set(sh.getCurrentSong().getSongs().get(difSelect));	
-			generateSubScreenBackground();			
+			generateSubScreenForeground();			
 		}else{										//Screen for selecting song
 			if(e.getJoystick().getPos() == Joystick.Position.DOWN){
 				selected++;
@@ -195,13 +212,26 @@ public class MenuState extends GameState {
 		Graphics2D g2 = subScreenBackground.createGraphics();
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 	    g2.setRenderingHints(rh);
-		g2.setFont(textFont2);
 	    g2.setColor(Color.BLACK);
 	    g2.drawImage(subMenu, 0, 0, 1280, 1024, null);
 	    
 		g2.setColor(Color.ORANGE);
 		g2.fillRect(0, 0, 1280, 1024/8);
 		g2.setColor(Color.BLACK);
+		g2.dispose();
+		subScreenBackground.createGraphics();
+	}
+	
+	public void generateSubScreenForeground(){
+		subScreenForeground = Images.initVolatileImage(1280, 1024, Transparency.TRANSLUCENT);
+		Graphics2D g2 = subScreenForeground.createGraphics();
+		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+		g2.setComposite(AlphaComposite.DstOut);
+		g2.fillRect(0, 0, subScreenForeground.getWidth(), subScreenForeground.getHeight());
+		g2.setComposite(AlphaComposite.SrcOver);
+	    g2.setRenderingHints(rh);
+	    g2.setColor(Color.BLACK);
+ 		g2.setFont(textFont2);
 		g2.drawString(selectedToSong(selected).getTitle(), 30, 60);
 		
 		
@@ -213,8 +243,8 @@ public class MenuState extends GameState {
 		for(DifficultyButton b : buttons2){
 			b.draw(g2);
 		}
-		g2.dispose();
-		subScreenBackground.createGraphics();
+	    g2.dispose();
+	    subScreenForeground.createGraphics();
 	}
 	
 	public void buttonInAnimation(int button){

+ 58 - 32
model/gameState/PlayState.java

@@ -16,6 +16,7 @@ import model.objects.PlayArea;
 import audio.ButtonInstance;
 import audio.ObjectInstance;
 import control.GameStateManager;
+import control.GameStateManager.State;
 import control.button.Button;
 import control.button.ButtonEvent;
 import control.button.ButtonHandler;
@@ -23,8 +24,7 @@ import control.joystick.JoystickEvent;
 
 public class PlayState extends GameState {
 
-	public static final Rectangle2D borderRect = new Rectangle2D.Double(256, 0,
-			1024, 1024);
+	public static final Rectangle2D borderRect = new Rectangle2D.Double(256, 0, 1024, 1024);
 	private PlayArea area;
 	private InfoPanel infoPanel;
 	private Player player;
@@ -32,7 +32,8 @@ public class PlayState extends GameState {
 
 	public static int sizeOfEnemy = 40;
 	public static int currentScore = 0;
-	public static int lifePoints = 100;
+	public static int comboScore = 0;
+	public static double lifePoints = 100;
 
 	private long oldProgress = 0;
 
@@ -40,55 +41,57 @@ public class PlayState extends GameState {
 		super(gsm, sh);
 		infoPanel = new InfoPanel(0, 0);
 		area = new PlayArea(256, 1024, 1024, 125);
-		// for(int index = 0; index < 8; index++){
-		// addEnemy(index, GameModel.colors[index % 6]);
-		// }
-		//
 		player = new Player(1280 - 1024 + 1024 / 2, 1024 / 2);
-		stroke = new BasicStroke(sizeOfEnemy, BasicStroke.CAP_ROUND,
-				BasicStroke.JOIN_ROUND);
+		stroke = new BasicStroke(sizeOfEnemy, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
 	}
 
 	@Override
 	public void init() {
+		
+		lifePoints = 100;
+		currentScore = 0;
+		comboScore = 0;
+		oldProgress = 0 ;
+		
+		for(Path p : area.paths)
+		{
+			p.getEnemysInPath().clear();
+		}
+		
 		try {
 			Thread.sleep(2000);
 		} catch (InterruptedException e) {
 			e.printStackTrace();
 		}
-		
+
 		sh.play();
 
-		for(int i=1; i<ButtonHandler.getButtons().size(); i++)
-		{
+		for (int i = 1; i < ButtonHandler.getButtons().size(); i++) {
 			Button b = ButtonHandler.getButton(i);
 			b.setColor(Color.BLACK);
 		}
 		
-		// System.out.println("Diff" +
-		// sh.getCurrentSongInstance().getDifficulty());
+		ButtonHandler.getButton(1).setColor(sh.getCurrentSongInstance().getButtons().get(0).getColor());
+
 	}
 
 	@Override
 	public void update(float factor) {
-		
+
 		long progress = (long) ((sh.getProgress() / 1000) + (Enemy.secondsToEnd * 1000));
 
-		for (ButtonInstance bu : sh.getCurrentSongInstance().getButtonsBetween(
-				oldProgress, progress)) {
+		for (ButtonInstance bu : sh.getCurrentSongInstance().getButtonsBetween(oldProgress, progress)) {
 			Button b = ButtonHandler.getButton(bu.getButtonID());
 			b.setColor(bu.getColor());
-//			System.out.println(bu.getButtonID() + " - " + bu.getColor()+ " / " + b.getColor());
 		}
-		
-		for (ObjectInstance ob : sh.getCurrentSongInstance().getObjectsBetween(
-				oldProgress, progress)) {
+
+		for (ObjectInstance ob : sh.getCurrentSongInstance().getObjectsBetween(oldProgress, progress)) {
 			Path p = area.paths.get(ob.getDirection());
 			p.addEnemy(ob.getColor(), ob.getDirection(), (int) ob.getLength());
 		}
 
 		oldProgress = progress;
-		
+
 		player.update(factor);
 		for (Path path : area.paths) {
 
@@ -98,15 +101,26 @@ public class PlayState extends GameState {
 
 				Enemy e = enemyIterator.next();
 
-				if (e.getDistanceFromStart() > Enemy.distanceToOctagon
-						+ (sizeOfEnemy * 1.5)) {
+				if (e.getDistanceFromStart() > Enemy.distanceToOctagon + (sizeOfEnemy * 1.5)) {
 					enemyIterator.remove();
+					lifePoints -= 5;
+					comboScore /= 2;
 				}
 
 				e.update(factor);
 			}
 		}
 
+		lifePoints -= 0.002 * factor;
+		
+		if(lifePoints <= 0)
+			gsm.setState(State.MENU_STATE);
+		if(comboScore >= 100)
+		{
+			comboScore = 0;
+			currentScore += 500;
+		}
+
 		infoPanel.updateIPanel();
 	}
 
@@ -134,25 +148,37 @@ public class PlayState extends GameState {
 
 	@Override
 	public void buttonPressed(ButtonEvent e) {
-		Iterator<Enemy> enemysInPath = area.paths.get(player.getIndex())
-				.getEnemysInPath().iterator();
+		boolean notHit = true;
+		Iterator<Enemy> enemysInPath = area.paths.get(player.getIndex()).getEnemysInPath().iterator();
 		while (enemysInPath.hasNext()) {
 			Enemy enemy = enemysInPath.next();
-			if (enemy.getDistanceFromStart() > Enemy.distanceToOctagon
-					|| enemy.getDistanceFromStart() > Enemy.distanceToOctagon
-							+ sizeOfEnemy) {
+			if (enemy.getDistanceFromStart() > Enemy.distanceToOctagon || enemy.getDistanceFromStart() > Enemy.distanceToOctagon + sizeOfEnemy) {
 				if (e.getButton().getColor().equals(enemy.getColor())) {
-					currentScore += enemy.getDistanceFromStart()
-							- Enemy.distanceToOctagon;
+					currentScore += enemy.getDistanceFromStart() - Enemy.distanceToOctagon;
+					comboScore += 5;
+					lifePoints = Math.min(lifePoints+10, 100);
 					enemysInPath.remove();
+					notHit = false;
 					break;
 				}
 			}
-
 		}
 		
+
 		player.setBeat();
 
+		if(notHit)
+		{
+			if(area.paths.get(player.getIndex()).getEnemysInPath().size() > 0)
+			{
+				lifePoints -= 1.5;
+			}
+		}
+		
+		if(e.getButton().getButtonID() == 0)
+		{
+			gsm.setState(State.MENU_STATE);
+		}
 	}
 
 	@Override

+ 41 - 42
model/gameState/TitleState.java

@@ -7,9 +7,6 @@ import java.awt.Color;
 import java.awt.Font;
 import java.awt.GradientPaint;
 import java.awt.Graphics2D;
-import java.awt.GraphicsConfiguration;
-import java.awt.GraphicsDevice;
-import java.awt.GraphicsEnvironment;
 import java.awt.RenderingHints;
 import java.awt.Transparency;
 import java.awt.image.BufferedImage;
@@ -23,85 +20,87 @@ import control.joystick.JoystickEvent;
 
 public class TitleState extends GameState {
 
-    BufferedImage pressStart = Images.getImage(ImageType.pressstart);
-    BufferedImage colorStrike = Images.getImage(ImageType.colorstrike);
-    VolatileImage background;
+	BufferedImage pressStart = Images.getImage(ImageType.pressstart);
+	BufferedImage colorStrike = Images.getImage(ImageType.colorstrike);
+	VolatileImage background;
 	Font textFont = new Font("OCR A Extended", Font.BOLD, 15);
 	Font textFont2 = new Font("OCR A Extended", Font.BOLD, 130);
-	GradientPaint gp = new GradientPaint(300, 0, new Color(0,0,1, 0.6f),980,1024 ,new Color(0,0,1, 0.2f));
-	
-    int index = 0;
-    int varx = 0;
-    int frame;
+	GradientPaint gp = new GradientPaint(300, 0, new Color(0, 0, 1, 0.6f), 980, 1024, new Color(0, 0, 1, 0.2f));
 
-	public TitleState(GameStateManager gsm, SongHandler sh){
+	int index = 0;
+	int varx = 0;
+	int frame;
+
+	public TitleState(GameStateManager gsm, SongHandler sh) {
 		super(gsm, sh);
 		createBackground();
 	}
+
 	@Override
 	public void init() {
-
+		sh.play();
 	}
 
 	@Override
 	public void update(float factor) {
 
-        frame++;
+		frame++;
 	}
 
 	@Override
 	public void draw(Graphics2D g2) {
 		g2.drawImage(background, 0, 0, 1280, 1024, null);
 		int image_x = ((frame / 6) % 6) * 49;
-		g2.drawImage(pressStart.getSubimage(image_x, 0, 49, 26),  640-122, 512, 245, 130, null);
+		g2.drawImage(pressStart.getSubimage(image_x, 0, 49, 26), 640 - 122, 512, 245, 130, null);
 	}
-	
+
 	@Override
 	public void buttonPressed(ButtonEvent e) {
-		
-		switch(e.getButton().getButtonID()){
+
+		switch (e.getButton().getButtonID()) {
 		case 0:
 			gsm.setState(State.MENU_STATE);
 			break;
 		}
-		
-		
+
 	}
+
 	@Override
 	public void buttonReleased(ButtonEvent e) {
-		
+
 	}
+
 	@Override
 	public void onJoystickMoved(JoystickEvent e) {
 	}
-	
-	public void createBackground(){
+
+	public void createBackground() {
 		background = Images.initVolatileImage(1280, 1024, Transparency.OPAQUE);
 		Graphics2D g2 = background.createGraphics();
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
-	    g2.setRenderingHints(rh);
-		g2.setColor(new Color(1,1,1, 0.3f));
-		g2.fillRect(0,0,1280,1024);
-		
-		g2.setColor(new Color(0,1,0, 0.7f));
-		g2.fillRect(0,0,100,1024);
-		g2.fillRect(1180,0,100,1024);
-		
-		g2.setColor(new Color(1,1,0, 0.7f));
-		g2.fillRect(100,0,100,1024);
-		g2.fillRect(1080,0,100,1024);
-		
-		g2.setColor(new Color(1,0,0, 0.7f));
-		g2.fillRect(200,0,100,1024);
-		g2.fillRect(980,0,100,1024);
-		
+		g2.setRenderingHints(rh);
+		g2.setColor(new Color(1, 1, 1, 0.3f));
+		g2.fillRect(0, 0, 1280, 1024);
+
+		g2.setColor(new Color(0, 1, 0, 0.7f));
+		g2.fillRect(0, 0, 100, 1024);
+		g2.fillRect(1180, 0, 100, 1024);
+
+		g2.setColor(new Color(1, 1, 0, 0.7f));
+		g2.fillRect(100, 0, 100, 1024);
+		g2.fillRect(1080, 0, 100, 1024);
+
+		g2.setColor(new Color(1, 0, 0, 0.7f));
+		g2.fillRect(200, 0, 100, 1024);
+		g2.fillRect(980, 0, 100, 1024);
+
 		g2.setPaint(gp);
 		g2.fillRect(300, 0, 680, 1024);
-		
+
 		g2.setFont(textFont);
 		g2.setColor(Color.WHITE);
-		g2.drawString("©2015 Team Hamtaro", 550, 1012);
-		
+		g2.drawString("©2015 Team Hamtaro", 550, 1012);
+
 		g2.setColor(Color.RED);
 		g2.setFont(textFont2);
 		g2.drawString("Color", 385, 212);

+ 13 - 15
model/objects/InfoPanel.java

@@ -13,31 +13,21 @@ import model.gameState.PlayState;
 
 public class InfoPanel {
 	
-	private String totalHighscore = "XXXXXX";
-	private int lifePercent;
-	private int upgradeScore = 0;
+	private String totalHighscore = "Score: 000000";
 	private int x, y;
 	private VolatileImage infoPanel;
 	
 	public InfoPanel(int x, int y){
 		this.x = x;
 		this.y = y;
-		generateInfoPanel();
 		updateIPanel();
+		generateInfoPanel();
 	}
 	
 	public void updateIPanel() {		
 		totalHighscore  = "Score: " + PlayState.currentScore;
 		
-		
-		lifePercent =+ PlayState.lifePoints;
-		
-		if(0 <= PlayState.currentScore && PlayState.currentScore <=100) {			
-			if(upgradeScore != PlayState.currentScore){
-				upgradeScore = PlayState.currentScore;
-				generateInfoPanel();
-			}
-		}
+		generateInfoPanel();
 	}
 	
 	private void generateInfoPanel(){
@@ -46,18 +36,21 @@ public class InfoPanel {
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 	    g2.setRenderingHints(rh);	
 	    g2.setColor(Color.BLACK);
+	    
 		g2.fillRect(x, y, 256, 1024);
+		
 		Font scoreFont = new Font("OCR A Extended", Font.BOLD, 30);
 		g2.setFont(scoreFont);
 		g2.setColor(Color.ORANGE);
+		
 		g2.drawString(totalHighscore, 25, 75);
 		g2.drawRect(25, 100, 200, 30);
 		g2.drawRect(25, 300, 200, 700);
 		g2.setColor(Color.GREEN);
-		g2.fillRect(25, 100, 2 * lifePercent, 30);
+		g2.fillRect(25, 100, (int)(2 * PlayState.lifePoints), 30);
 		
 		g2.setColor(Color.YELLOW);		
-		g2.fillRect(25, 1000 - 7 * upgradeScore, 200, 0 + 7 * upgradeScore);
+		g2.fillRect(25, 1000 - 7 * PlayState.comboScore, 200, 0 + 7 * PlayState.comboScore);
 		g2.dispose();
 		infoPanel.createGraphics();
 	}
@@ -65,4 +58,9 @@ public class InfoPanel {
 	public void draw(Graphics2D g2){
 		g2.drawImage(infoPanel, 0, 0, 256,1024,null);
 	}
+	
+	public String getTotalHighscore()
+	{
+		return totalHighscore;
+	}
 }