49 lines
1.5 KiB
Java
49 lines
1.5 KiB
Java
package de.miaurizius.jgame2d.core;
|
|
|
|
import java.awt.event.KeyEvent;
|
|
import java.awt.event.KeyListener;
|
|
|
|
public class KeyHandler implements KeyListener {
|
|
|
|
public boolean upPressed, downPressed, leftPressed, rightPressed;
|
|
public GamePanel panel;
|
|
// DEBUG
|
|
public boolean checkDrawTime = false;
|
|
|
|
public KeyHandler(GamePanel panel) {
|
|
this.panel = panel;
|
|
}
|
|
|
|
@Override
|
|
public void keyTyped(KeyEvent e) {}
|
|
|
|
@Override
|
|
public void keyPressed(KeyEvent e) {
|
|
int code = e.getKeyCode();
|
|
switch (code) {
|
|
// CONTROLS
|
|
case KeyEvent.VK_W, KeyEvent.VK_UP -> upPressed = true;
|
|
case KeyEvent.VK_S, KeyEvent.VK_DOWN -> downPressed = true;
|
|
case KeyEvent.VK_A, KeyEvent.VK_LEFT -> leftPressed = true;
|
|
case KeyEvent.VK_D, KeyEvent.VK_RIGHT -> rightPressed = true;
|
|
|
|
// DEBUG OPTIONS
|
|
case KeyEvent.VK_T -> checkDrawTime = !checkDrawTime;
|
|
|
|
// GAME STATES
|
|
case KeyEvent.VK_ESCAPE -> panel.gameState = (panel.gameState == GameState.PAUSE) ? GameState.PLAY : GameState.PAUSE;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void keyReleased(KeyEvent e) {
|
|
int code = e.getKeyCode();
|
|
switch (code) {
|
|
case KeyEvent.VK_W, KeyEvent.VK_UP -> upPressed = false;
|
|
case KeyEvent.VK_S, KeyEvent.VK_DOWN -> downPressed = false;
|
|
case KeyEvent.VK_A, KeyEvent.VK_LEFT -> leftPressed = false;
|
|
case KeyEvent.VK_D, KeyEvent.VK_RIGHT -> rightPressed = false;
|
|
}
|
|
}
|
|
}
|