Acabo de empezar a aprender a programar applets, y la GUI de Java en general, intento hacer un juego simple. Por el momento, tengo la clase principal (Juego) y la clase de jugador (Jugador) tengo al jugador dibujando en la pantalla, pero estoy luchando para que los eventos clave funcionen, ¡cualquier ayuda apreciada!Eventos de KeyListener que aparentemente no se activan en Java applet
La imagen del reproductor se muestra perfectamente bien, pero la posición no cambia cuando presiono una tecla.
EDIT: código incorrecto publicado para el jugador, actualizado
Game.java:
public class Game extends Applet {
Player player;
@Override
public void init() {
player = new Player(this);
this.setSize(800, 600);
addKeyListener(player);
}
@Override
public void paint(Graphics g) {
player.paint(g);
}
}
Player.java:
public class Player implements KeyListener {
Game game;
Image image;
int x;
int y;
public Player(Game game) {
this.game = game;
x = 0;
y = 0;
image = game.getImage(game.getCodeBase(), "images/Player.png");
}
public void paint(Graphics g) {
g.drawImage(image, x, y, game);
}
@Override
public void keyTyped(KeyEvent e) {
return;
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_A:
x -= 1;
break;
case KeyEvent.VK_D:
x += 1;
break;
case KeyEvent.VK_S:
y += 1;
break;
case KeyEvent.VK_W:
y -= 1;
break;
}
game.repaint();
}
@Override
public void keyReleased(KeyEvent e) {
return;
}
}
1) * "Acabo de comenzar a aprender a programar applets, y la GUI de Java en general" * Evite los applets y aprenda usando marcos. Ellos son más simples. 2) Este milenio, use Swing en lugar de AWT. 3) El HTML establece un tamaño de applet, no llame a 'setSize()' en 'init()'. –