Răsfoiți Sursa

Added timebar

jancoow 10 ani în urmă
părinte
comite
6bec001192
2 a modificat fișierele cu 24 adăugiri și 23 ștergeri
  1. 10 5
      src/model/InfoPanel.java
  2. 14 18
      src/model/state/PlayState.java

+ 10 - 5
src/model/InfoPanel.java

@@ -4,25 +4,30 @@ import java.awt.Color;
 import java.awt.Font;
 import java.awt.Graphics2D;
 
-import resources.image.Images;
-import resources.image.Images.ImageType;
 import main.Window;
 import model.objects.Player;
+import model.state.PlayState;
+import resources.image.Images;
+import resources.image.Images.ImageType;
 
 public class InfoPanel {
-
+	private PlayState play;
 	private Player player1, player2;
 		
-	public InfoPanel(Player p1, Player p2){
+	public InfoPanel(Player p1, Player p2, PlayState play){
 		player1 = p1;
 		player2 = p2;
+		this.play = play;
 	}
 	
 	public void paint(Graphics2D g2d)
 	{
 		g2d.setColor(Color.black);
 		g2d.setFont(new Font("Century Schoolbook L", Font.ROMAN_BASELINE, 27));
-		
+		g2d.setColor(Color.red);
+		g2d.fillRect(70, 605, (int) (680*((double)play.getTimeleft()/play.getCurrentLevel().getTime())), 20);
+		g2d.setColor(Color.black);
+
 		//Player 1
 		g2d.drawString(player1.getName(), 70, 648);
 		g2d.drawString(player1.getScore() + " xp", 70, 673);

+ 14 - 18
src/model/state/PlayState.java

@@ -38,18 +38,15 @@ public class PlayState extends State{
 	public PlayState(GameStateManager gsm) {
 		super("play", gsm);
 		player = new Player(Images.getImage(ImageType.PLAYER1), 40, 550, "Janco");
-		infopanel = new InfoPanel(player, player);
+		infopanel = new InfoPanel(player, player, this);
 		balls = new ArrayList<Ball>();
 		readLevelsFromFiles();
 		playLevel(levels.get(currentlevel));
 	}
 
 	
-	/** Level file reading **/
-	
-	/**
-	 * Read all level files from a specific directory into level objects
-	 */
+	/* LEVEL FILE READING, PARSING AND PLAYING */
+
 	private void readLevelsFromFiles(){
 		levels = new ArrayList<>();
 		File root = new File(Main.class.getResource("/model/levels").getPath());
@@ -66,16 +63,6 @@ public class PlayState extends State{
         }
 	}
 	
-	/**
-	 * 
-	 * @param levelfile
-	 * @return
-	 * @throws NumberFormatException
-	 * @throws IllegalArgumentException
-	 * @throws IllegalAccessException
-	 * @throws NoSuchFieldException
-	 * @throws SecurityException
-	 */
 	private Level readLevel(List<String> levelfile) throws NumberFormatException, IllegalArgumentException, IllegalAccessException, NoSuchFieldException, SecurityException{
 		Level level = new Level();
 		if(levelfile.size() == 3){
@@ -152,7 +139,7 @@ public class PlayState extends State{
 					b.add(new Ball(bal.getSize()-1, 400, bal.getColor(), bal.getX(), bal.getY(), 1, true));
 				}else if(bal.hitPlayer(player)){														// Collision between player and ball
 					player.setHealth(player.getHealth()-1);
-					playLevel(levels.get(currentlevel));
+					playLevel(getCurrentLevel());
 				}else if(bal.getSize() <= 0 ){															// Remove ball from arraylist when size is 0 (not visible)
 					b.remove();
 				}else{
@@ -167,7 +154,7 @@ public class PlayState extends State{
 			playLevel(levels.get(currentlevel+=1));
 		}else if(timeleft < 0){
 			player.setHealth(player.getHealth()-1);
-			playLevel(levels.get(currentlevel));
+			playLevel(getCurrentLevel());
 		}else if(player.getHealth() <= 0) {
 			int i = 1/0;
 		}
@@ -187,6 +174,15 @@ public class PlayState extends State{
 		infopanel.paint(g2d);
 	}
 
+	/* GETTERS AND SETTERS */
+	
+	public Level getCurrentLevel(){
+		return levels.get(currentlevel);
+	}
+	
+	public int getTimeleft() {
+		return timeleft;
+	}
 	
 	/* EVENTS */
 	@Override