【发布时间】:2012-03-19 06:43:48
【问题描述】:
我刚刚开始学习编写小程序和一般的 java GUI,我正在尝试制作一个简单的游戏。目前,我有主类 (Game) 和玩家类 (Player),我将玩家绘制到屏幕上,但我正在努力让关键事件正常工作,感谢任何帮助!
播放器图像显示非常好,但是当我按下键时位置根本没有改变。
编辑:为播放器发布的错误代码,已更新
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) “我刚刚开始学习编写小程序,以及一般的 java GUI” 避免使用小程序并学习使用框架。它们更简单。 2)这个千年,使用 Swing 代替 AWT。 3)小程序大小由HTML设置,不要在
init()中调用setSize()。
标签: java applet awt keylistener