|
|
@@ -8,6 +8,7 @@ import java.util.ListIterator;
|
|
|
|
|
|
import main.Window;
|
|
|
import model.GameStateManager;
|
|
|
+import model.InfoPanel;
|
|
|
import model.objects.Ball;
|
|
|
import model.objects.Player;
|
|
|
import model.objects.ShootingLine;
|
|
|
@@ -19,12 +20,13 @@ public class PlayState extends State{
|
|
|
private Player player;
|
|
|
private ShootingLine line;
|
|
|
private ArrayList<Ball> balls;
|
|
|
+ private InfoPanel infopanel;
|
|
|
private int direction;
|
|
|
|
|
|
public PlayState(GameStateManager gsm) {
|
|
|
super("play", gsm);
|
|
|
-
|
|
|
- player = new Player(Images.getImage(ImageType.PLAYER1), 40, 550);
|
|
|
+ player = new Player(Images.getImage(ImageType.PLAYER1), 40, 550, "Janco");
|
|
|
+ infopanel = new InfoPanel(player, player);
|
|
|
balls = new ArrayList<Ball>();
|
|
|
balls.add(new Ball(5, 400, Color.red, 300, 50,-1));
|
|
|
}
|
|
|
@@ -61,34 +63,32 @@ public class PlayState extends State{
|
|
|
player.update();
|
|
|
if(line != null){
|
|
|
line.setLength(line.getLength()+1);
|
|
|
- if(line.getMaxHeight() < 0){ //Line hit the ceiling, so "remove" it
|
|
|
+ if(line.getMaxHeight() < 0){ //Line hit the ceiling, so "remove" it
|
|
|
line = null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //collision detection
|
|
|
+ //Collision detection
|
|
|
ListIterator<Ball> b = balls.listIterator();
|
|
|
while(b.hasNext()){
|
|
|
Ball bal = b.next();
|
|
|
- if(line != null && bal.hitLine(line)){ // line - ball
|
|
|
+ if(line != null && bal.hitLine(line)){ // Collision between line and ball
|
|
|
line = null;
|
|
|
b.remove();
|
|
|
b.add(new Ball(bal.getSize()-1, 400, bal.getColor(), bal.getX(), bal.getY(), -1));
|
|
|
b.add(new Ball(bal.getSize()-1, 400, bal.getColor(), bal.getX(), bal.getY(), 1));
|
|
|
- }else if(bal.hitPlayer(player)){
|
|
|
+ }else if(bal.hitPlayer(player)){ // Collision between player and ball
|
|
|
try {
|
|
|
throw new Exception("YOU DIED MOTHERFUCKER");
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- }else if(bal.getSize() <= 0 ){
|
|
|
+ }else if(bal.getSize() <= 0 ){ // Remove ball from arraylist when size is 0 (not visible)
|
|
|
b.remove();
|
|
|
}else{
|
|
|
bal.update();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -103,6 +103,7 @@ public class PlayState extends State{
|
|
|
b.paint(g2d);
|
|
|
}
|
|
|
player.paint(g2d);
|
|
|
+ infopanel.paint(g2d);
|
|
|
}
|
|
|
|
|
|
|