我刚开始学习编写小程序,包括Java GUI,目前我正在尝试制作一个简单的游戏。目前为止,我已经有了主类(Game)和玩家类(Player),我已经让玩家在屏幕上绘制出来,但是我无法使按键事件起作用,希望得到任何帮助!
玩家图像显示得非常完美,但是当我按下键时,位置根本不会改变。
编辑:玩家的错误代码已被更正。
Game.java:
玩家图像显示得非常完美,但是当我按下键时,位置根本不会改变。
编辑:玩家的错误代码已被更正。
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;
}
}
init()
中调用setSize()
。