java - 如何用箭头键移动圆圈?
问题描述
我想使用左右箭头键在黑色背景上移动一个白色圆圈。KeyListener 正在工作(使用 System.out.print),但按下键时圆圈不会移动。我认为这与 x 和 y 位置(xPos,yPos)有关。
private static final int SPEED = 50, BALL_SIZE = 50;
private int dx;
private int xPos, yPos;
public Background() {
addKeyListener(this);
setBackground(Color.BLACK);
// the starting point of ball
xPos = 100;
yPos = 700;
dx = SPEED;
}
@Override
public void actionPerformed(ActionEvent e) {
// screen size
int width = getWidth();
xPos += dx;
// boundaries
if (xPos < 100) {
xPos = 100;
dx = SPEED;
}
else if (xPos > width - BALL_SIZE) {
xPos = width - BALL_SIZE;
dx = -SPEED;
}
repaint();
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_RIGHT) { // right arrow key
dx++;
}
else if (e.getKeyCode() == KeyEvent.VK_LEFT) { // left arrow key
dx--;
}
else if (e.getKeyCode() == KeyEvent.VK_SPACE) { // space bar
// shoot laser!
}
System.out.println("After");
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.WHITE);
g.fillOval(xPos, yPos, BALL_SIZE, BALL_SIZE);
}
解决方案
推荐阅读
- android - 从 Android Studio 访问 SHA-1 或 Gradle 选项卡
- c++ - boost::asio 中的 NAT 打孔
- routes - 过去日期的准确流量信息:HERE Route API 调用的流量随着时间的推移而变化?
- r - 将 XLS 文件读入 R 时出错 - 无法解析文件
- google-apps-script - 谷歌表格电子邮件提醒,如果到期日期
- r - 使用 R 从网页中抓取表格和链接
- r - 如何在 R 中轻松格式化频率表?
- android - 仅在单击时隐藏键盘,如果用户滚动则保留它
- java - Android更新后opencsv不读取CSV
- python-3.x - 如何制作在页脚中显示时间戳的狙击命令