【发布时间】:2012-12-08 21:50:35
【问题描述】:
此代码构建正确,一切似乎都可以正常工作,但关键是什么都不做。我认为要么是动作侦听器,要么是椭圆没有更新。我正在尝试通过初学者Java游戏编程来工作。我相信这很容易,但我没有抓住它。如果这有所作为,我正在使用 sublime text 2 的 mac。
package javagame;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JavaGame extends JFrame {
int x, y;
public class AL extends KeyAdapter {
public void keyPressed(KeyEvent e) {
int keycode = e.getKeyCode();
if(keycode == e.VK_LEFT); {
x-= 3;
}
if(keycode == e.VK_RIGHT); {
x+= 3;
}
if(keycode == e.VK_UP); {
y-= 3;
}
if(keycode == e.VK_DOWN); {
y+= 3;
}
}
public void keyReleased(KeyEvent e) {
}
}
public JavaGame() {
addKeyListener(new AL());
setTitle("Jave Game");
setSize(700, 700);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
x = 350;
y = 350;
}
public void paint(Graphics g) {
g.fillOval(x, y, 15, 15);
repaint();
}
public static void main(String[] args) {
new JavaGame();
}
}
【问题讨论】:
-
如有疑问,让问题更简单。首先验证您是否通过
System.out.println语句进入keyPressed,然后确认是否按下了右键,最后确认您是否正在更新paint blob。
标签: java swing keylistener keyevent