|
|
@@ -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, (int) (bal.getBounceHeight()/1.2), bal.getColor(), bal.getX(), bal.getY(), 1, Math.abs(bal.getYSpeed())*-1));
|
|
|
}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
|