|
@@ -2,22 +2,27 @@ package model.state;
|
|
|
|
|
|
|
|
import java.awt.Graphics2D;
|
|
import java.awt.Graphics2D;
|
|
|
import java.awt.event.KeyEvent;
|
|
import java.awt.event.KeyEvent;
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.Iterator;
|
|
|
|
|
|
|
|
import main.Window;
|
|
import main.Window;
|
|
|
import model.GameStateManager;
|
|
import model.GameStateManager;
|
|
|
-import model.objects.DrawObject;
|
|
|
|
|
import model.objects.Player;
|
|
import model.objects.Player;
|
|
|
|
|
+import model.objects.ShootingLine;
|
|
|
import resources.image.Images;
|
|
import resources.image.Images;
|
|
|
import resources.image.Images.ImageType;
|
|
import resources.image.Images.ImageType;
|
|
|
|
|
|
|
|
public class PlayState extends State{
|
|
public class PlayState extends State{
|
|
|
|
|
|
|
|
Player player;
|
|
Player player;
|
|
|
|
|
+ ArrayList<ShootingLine> lines;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
public PlayState(GameStateManager gsm) {
|
|
public PlayState(GameStateManager gsm) {
|
|
|
super("play", gsm);
|
|
super("play", gsm);
|
|
|
|
|
|
|
|
player = new Player(Images.getImage(ImageType.PLAYER1), 40, 550);
|
|
player = new Player(Images.getImage(ImageType.PLAYER1), 40, 550);
|
|
|
|
|
+ lines = new ArrayList<ShootingLine>();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* INIT AND EXIT */
|
|
/* INIT AND EXIT */
|
|
@@ -45,12 +50,26 @@ public class PlayState extends State{
|
|
|
player.setX(32);
|
|
player.setX(32);
|
|
|
}
|
|
}
|
|
|
player.update();
|
|
player.update();
|
|
|
|
|
+ Iterator<ShootingLine> i = lines.iterator();
|
|
|
|
|
+ while(i.hasNext()){
|
|
|
|
|
+ ShootingLine l = i.next();
|
|
|
|
|
+ if(l.getMaxHeight() < 0){
|
|
|
|
|
+ i.remove();
|
|
|
|
|
+ }else{
|
|
|
|
|
+ l.setLength(l.getLength() +1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void paint(Graphics2D g2d) {
|
|
public void paint(Graphics2D g2d) {
|
|
|
g2d.drawString("Press ESC to stop the game", Window.WIDTH/2, Window.HEIGHT/2);
|
|
g2d.drawString("Press ESC to stop the game", Window.WIDTH/2, Window.HEIGHT/2);
|
|
|
g2d.drawImage(Images.getImage(ImageType.BACKGROUND),null,0,0);
|
|
g2d.drawImage(Images.getImage(ImageType.BACKGROUND),null,0,0);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ for(ShootingLine l:lines){
|
|
|
|
|
+ l.paint(g2d);
|
|
|
|
|
+ }
|
|
|
player.paint(g2d);
|
|
player.paint(g2d);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -66,6 +85,10 @@ public class PlayState extends State{
|
|
|
case KeyEvent.VK_LEFT:
|
|
case KeyEvent.VK_LEFT:
|
|
|
player.setX(player.getX()-10);
|
|
player.setX(player.getX()-10);
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case KeyEvent.VK_SPACE:
|
|
|
|
|
+ if(lines.size() == 0){
|
|
|
|
|
+ lines.add(new ShootingLine((int)player.getX()+player.getWidth()/2, 600));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
@Override
|
|
@Override
|