【发布时间】:2013-05-13 10:10:21
【问题描述】:
我试图让精灵在按下按钮时逐渐加速,而不是仅以恒定速度移动。还要设置最大速度限制。我希望你明白我的意思。
timer = new Timer(5, this);
timer.start();
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
g2d.drawImage(image, x, y, this); //x,y = position
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
private class TAdapter extends KeyAdapter {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
dx = -1;
}
if (key == KeyEvent.VK_RIGHT) {
dx = 1;
}
if (key == KeyEvent.VK_UP) {
dy = -1;
}
if (key == KeyEvent.VK_DOWN) {
dy = 1;
}
}
}
public void actionPerformed(ActionEvent e) {
x += dx;
y += dy;
repaint();
}
【问题讨论】:
-
有什么问题?请发布完整代码。同时,您可以使用多个
x和y,它们会从慢到快。 即:x = x * 2 -
尝试增加定时器延迟。 5 毫秒足够接近 0,没有区别。 40 毫秒约为 25 fps,15 约为 60 fps...
标签: java swing timer paint keylistener