Ciao a tutti, sto cercando di fare un gioco molto semplice in java, per muovere il giocatore ho inserito un keylistener, purtroppo però non funziona. Ho già usato i keylistener altre volte, ma questa volta non riesco proprio a capire come funziona. Ecco il codice:
codice:
public class Game extends JPanel implements KeyListener {
private String ibackgroundpath = "/images/background.png";
private String ibackground1path = "/images/background1.png";
private String iplayerpath = "/images/player.png";
private int bgx = 0, bgy = 0, bg1x = 0, bg1y = bgy - Main.HEIGHT;
private int playerx = 360, playery = 400, velX = 0, velY = 0;
public boolean up = false, down = false, left = false, right = false;
public void paint(Graphics g) {}
public Image getBackgroundImage() {}
public Image getBackground1Image() {}
public Image getPlayerImage() {}
public void moveBackground() {}
public void movePlayer(){
if(up){
velY = -2;
}
if(down){
velY = 2;
}
if(right){
velX = 2;
}
if(left){
velX = -2;
}
}
@Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_W) {
up = true;
}
if (key == KeyEvent.VK_S) {
down = true;
}
if (key == KeyEvent.VK_A) {
left = true;
}
if (key == KeyEvent.VK_D) {
right = true;
}
}
@Override
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_W) {
up = false;
}
if (key == KeyEvent.VK_S) {
down = false;
}
if (key == KeyEvent.VK_A) {
left = false;
}
if (key == KeyEvent.VK_D) {
right = false;
}
}
@Override
public void keyTyped(KeyEvent e) {}
public void update() {
addKeyListener(this);
setFocusable(true);
moveBackground();
movePlayer();
playerx += velX;
playery += velY;
}
}
Non so se possa servire ma sto usando un CardLayout per passare dal menu al gioco quando viene cliccato il bottone play nel menu.
Sapete quale potrebbe essere il problema?
Grazie in anticipo