|
@@ -2,10 +2,14 @@ package model.state;
|
|
|
|
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Color;
|
|
|
import java.awt.Graphics2D;
|
|
import java.awt.Graphics2D;
|
|
|
|
|
+import java.awt.event.ActionEvent;
|
|
|
|
|
+import java.awt.event.ActionListener;
|
|
|
import java.awt.event.KeyEvent;
|
|
import java.awt.event.KeyEvent;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Iterator;
|
|
import java.util.Iterator;
|
|
|
|
|
|
|
|
|
|
+import javax.swing.Timer;
|
|
|
|
|
+
|
|
|
import main.Window;
|
|
import main.Window;
|
|
|
import model.GameStateManager;
|
|
import model.GameStateManager;
|
|
|
import model.objects.Ball;
|
|
import model.objects.Ball;
|
|
@@ -14,19 +18,24 @@ 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 implements ActionListener{
|
|
|
|
|
|
|
|
Player player;
|
|
Player player;
|
|
|
ArrayList<ShootingLine> lines;
|
|
ArrayList<ShootingLine> lines;
|
|
|
ArrayList<Ball> balls;
|
|
ArrayList<Ball> balls;
|
|
|
|
|
|
|
|
|
|
+ Timer t;
|
|
|
|
|
+ int direction;
|
|
|
|
|
+
|
|
|
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>();
|
|
lines = new ArrayList<ShootingLine>();
|
|
|
balls = new ArrayList<Ball>();
|
|
balls = new ArrayList<Ball>();
|
|
|
- balls.add(new Ball(5, 10, Color.red, 50, 50));
|
|
|
|
|
|
|
+ balls.add(new Ball(5, 400, Color.red, 50, 50));
|
|
|
|
|
+
|
|
|
|
|
+ t = new Timer(1000/5, this);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/* INIT AND EXIT */
|
|
/* INIT AND EXIT */
|
|
@@ -45,7 +54,12 @@ public class PlayState extends State{
|
|
|
/* UPDATE */
|
|
/* UPDATE */
|
|
|
@Override
|
|
@Override
|
|
|
public void update() {
|
|
public void update() {
|
|
|
- if(player.getX() + 30 + player.getWidth() >= Window.WIDTH)
|
|
|
|
|
|
|
+ if(direction == 1)
|
|
|
|
|
+ player.setX(player.getX()+10);
|
|
|
|
|
+ else if(direction == -1)
|
|
|
|
|
+ player.setX(player.getX()-10);
|
|
|
|
|
+
|
|
|
|
|
+ if(player.getX() + 30 + player.getWidth() >= Window.WIDTH)
|
|
|
{
|
|
{
|
|
|
player.setX(Window.WIDTH - 30 - player.getWidth()-1);
|
|
player.setX(Window.WIDTH - 30 - player.getWidth()-1);
|
|
|
}
|
|
}
|
|
@@ -54,6 +68,9 @@ public class PlayState extends State{
|
|
|
player.setX(32);
|
|
player.setX(32);
|
|
|
}
|
|
}
|
|
|
player.update();
|
|
player.update();
|
|
|
|
|
+ for(Ball b: balls){
|
|
|
|
|
+ b.update();
|
|
|
|
|
+ }
|
|
|
Iterator<ShootingLine> i = lines.iterator();
|
|
Iterator<ShootingLine> i = lines.iterator();
|
|
|
while(i.hasNext()){
|
|
while(i.hasNext()){
|
|
|
ShootingLine l = i.next();
|
|
ShootingLine l = i.next();
|
|
@@ -87,10 +104,10 @@ public class PlayState extends State{
|
|
|
switch(e.getKeyCode())
|
|
switch(e.getKeyCode())
|
|
|
{
|
|
{
|
|
|
case KeyEvent.VK_RIGHT:
|
|
case KeyEvent.VK_RIGHT:
|
|
|
- player.setX(player.getX()+10);
|
|
|
|
|
|
|
+ direction = 1;
|
|
|
break;
|
|
break;
|
|
|
case KeyEvent.VK_LEFT:
|
|
case KeyEvent.VK_LEFT:
|
|
|
- player.setX(player.getX()-10);
|
|
|
|
|
|
|
+ direction = -1;
|
|
|
break;
|
|
break;
|
|
|
case KeyEvent.VK_SPACE:
|
|
case KeyEvent.VK_SPACE:
|
|
|
if(lines.size() == 0){
|
|
if(lines.size() == 0){
|
|
@@ -102,6 +119,10 @@ public class PlayState extends State{
|
|
|
public void keyReleased(KeyEvent e) {
|
|
public void keyReleased(KeyEvent e) {
|
|
|
switch(e.getKeyCode())
|
|
switch(e.getKeyCode())
|
|
|
{
|
|
{
|
|
|
|
|
+ case KeyEvent.VK_RIGHT:
|
|
|
|
|
+ case KeyEvent.VK_LEFT:
|
|
|
|
|
+ direction = 0;
|
|
|
|
|
+ break;
|
|
|
case KeyEvent.VK_ESCAPE:
|
|
case KeyEvent.VK_ESCAPE:
|
|
|
gsm.setState("menu");
|
|
gsm.setState("menu");
|
|
|
break;
|
|
break;
|
|
@@ -109,4 +130,10 @@ public class PlayState extends State{
|
|
|
}
|
|
}
|
|
|
@Override
|
|
@Override
|
|
|
public void keyTyped(KeyEvent e) {}
|
|
public void keyTyped(KeyEvent e) {}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void actionPerformed(ActionEvent arg0) {
|
|
|
|
|
+ // TODO Auto-generated method stub
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|