Ho appena iniziato a imparare a programmare le applet e la GUI Java in generale, sto tentando di creare un gioco semplice. Al momento, ho la classe principale (gioco) e la classe giocatore (giocatore) ho il giocatore che disegna sullo schermo, ma ho difficoltà a far funzionare gli eventi chiave, ogni aiuto è apprezzato!Eventi KeyListener apparentemente non attivati nell'applet java
L'immagine del lettore viene visualizzata perfettamente, ma la posizione non cambia quando premo un tasto.
EDIT: codice errato postato per il giocatore, aggiornato
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) * "Ho appena iniziato a imparare a programmare le applet e la GUI Java in generale" * Evita le applet e impara a usare i frame. Sono più semplici. 2) Questo millennio, usa Swing invece di AWT. 3) Una dimensione dell'applet è impostata dall'HTML, non chiamare 'setSize()' in 'init()'. –