| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package model.state;
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.awt.event.KeyEvent;
- import java.util.ArrayList;
- import java.util.Iterator;
- import main.Window;
- import model.GameStateManager;
- import model.objects.Ball;
- import model.objects.Player;
- import model.objects.ShootingLine;
- import resources.image.Images;
- import resources.image.Images.ImageType;
- public class PlayState extends State{
-
- Player player;
- ArrayList<ShootingLine> lines;
- ArrayList<Ball> balls;
-
- public PlayState(GameStateManager gsm) {
- super("play", gsm);
-
- player = new Player(Images.getImage(ImageType.PLAYER1), 40, 550);
- lines = new ArrayList<ShootingLine>();
- balls = new ArrayList<Ball>();
- balls.add(new Ball(5, 10, Color.red, 50, 50));
- }
- /* INIT AND EXIT */
- @Override
- public void init() {
- System.out.println("Starting play state");
- }
-
- @Override
- public void exit()
- {
- System.out.println("Stopping play state");
- }
-
- /* UPDATE */
- @Override
- public void update() {
- if(player.getX() + 30 + player.getWidth() >= Window.WIDTH)
- {
- player.setX(Window.WIDTH - 30 - player.getWidth()-1);
- }
- if(player.getX() - 30 <= 0)
- {
- player.setX(32);
- }
- 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
- public void paint(Graphics2D g2d) {
- g2d.drawString("Press ESC to stop the game", Window.WIDTH/2, Window.HEIGHT/2);
- g2d.drawImage(Images.getImage(ImageType.BACKGROUND),null,0,0);
-
- for(ShootingLine l:lines){
- l.paint(g2d);
- }
- for(Ball b: balls){
- b.paint(g2d);
- }
- player.paint(g2d);
- }
-
- /* EVENTS */
- @Override
- public void keyPressed(KeyEvent e) {
- switch(e.getKeyCode())
- {
- case KeyEvent.VK_RIGHT:
- player.setX(player.getX()+10);
- break;
- case KeyEvent.VK_LEFT:
- player.setX(player.getX()-10);
- break;
- case KeyEvent.VK_SPACE:
- if(lines.size() == 0){
- lines.add(new ShootingLine((int)player.getX()+player.getWidth()/2, 600));
- }
- }
- }
- @Override
- public void keyReleased(KeyEvent e) {
- switch(e.getKeyCode())
- {
- case KeyEvent.VK_ESCAPE:
- gsm.setState("menu");
- break;
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {}
- }
|