package de.sanguinik.model;
import de.sanguinik.view.PlayFieldScreen;
import javafx.event.EventHandler;
import javafx.scene.image.Image;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
public class Keyboard implements EventHandler<KeyEvent> {
private final Player player;
private final PlayFieldScreen screen;
private static final String PATH = "/de/sanguinik/model/";
private static final Image IMAGE_UP = new Image(PATH + "hannes_up.png");
private static final Image IMAGE_DOWN = new Image(PATH + "hannes_down.png");
private static final Image IMAGE_LEFT = new Image(PATH + "hannes_left.png");
private static final Image IMAGE_RIGHT = new Image(PATH
+ "hannes_right.png");
public Keyboard(Player player, PlayFieldScreen screen) {
this.player = player;
this.screen = screen;
}
@Override
public void handle(KeyEvent e) {
KeyCode code = e.getCode();
switch (code) {
case W:
if (player.isMovable()) {
player.setDirection(Direction.UP);
player.move();
player.getImageView().setImage(IMAGE_UP);
}
break;
case S:
if (player.isMovable()) {
player.setDirection(Direction.DOWN);
player.move();
player.getImageView().setImage(IMAGE_DOWN);
}
break;
case A:
if (player.isMovable()) {
player.setDirection(Direction.LEFT);
player.move();
player.getImageView().setImage(IMAGE_LEFT);
}
break;
case D:
if (player.isMovable()) {
player.setDirection(Direction.RIGHT);
player.move();
player.getImageView().setImage(IMAGE_RIGHT);
}
break;
case SPACE:
if (player.isMovable()) {
player.shoot();
}
break;
case P:
screen.pauseGame();
player.toggleMoveable();
break;
case M:
screen.muteMusic();
default:
break;
}
}
}