So im a newbie and im trying to get my game to get input from keyboard to move a fixed distance (lets say 50) so if you press up on arrow key you go up by 50 and etc. When i run the game i cant use the arrow keys to move the hexagon..
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class SuperHexagon extends JFrame {
public static final int WIDTH = 1440, HEIGHT = WIDTH / 16 * 9;
public SuperHexagon() {
setPreferredSize (new Dimension(WIDTH, HEIGHT));
setMaximumSize (new Dimension(WIDTH, HEIGHT));
setMinimumSize (new Dimension(WIDTH, HEIGHT));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main (String[] args) throws IOException {
JFrame frame = new SuperHexagon();
int hexX = (WIDTH / 2) - 23, hexY = (HEIGHT / 2) - 23;
Graphics g = frame.getGraphics();
BufferedImage bgImage = ImageIO.read(new File("Images/gameBG.png"));
BufferedImage hexImage = ImageIO.read(new File("Images/hexagon.png"));
frame.addKeyListener(new KeyInput());
g.drawImage(bgImage, 0, 0, null);
g.drawImage(hexImage, hexX, hexY, null);
g.dispose();
}
}
The key inputs:
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class KeyInput extends KeyAdapter {
/* Coordinates that player can move (3x3 grid)
* (645,330)(720,330)(795,330)
* (645,405)(720,405)(795,405)
* (645,480)(720,480)(795,480)
*/
public void keyPressed(KeyEvent e, int hexX, int hexY) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_UP) {
hexY -= 75;
}
if (key == KeyEvent.VK_DOWN) {
hexY += 75;
}
if (key == KeyEvent.VK_RIGHT) {
hexX += 75;
}
if (key == KeyEvent.VK_LEFT) {
hexX -= 75;
}
}
}