请教各位大神一个关于java swing的问题

JohnsonEE 2013-06-24 10:14:18
本人想做一个小游戏,需要用键盘的方向键来控制我的游戏角色的移动。

当然,也就是长按左键则往做不断移动,长按右键则向右。

问题是,当我按下方向键时,我的人物会先移动一格,过了1秒钟以后,才会不断的继续移动!无法做到我希望的,一按下键,立刻就做连续运动。



以下是部分代码:

addKeyListener(new KeyListener() {

public void keyTyped(KeyEvent e) {

}

public void keyReleased(KeyEvent e) {

}

public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
panel.moveTheRect(0, -5);
setBackground(Color.black);
panel.repaint();
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
panel.moveTheRect(0, 5);
setBackground(Color.black);
panel.repaint();
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
panel.moveTheRect(-5, 0);
setBackground(Color.black);
panel.repaint();
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
panel.moveTheRect(5, 0);
setBackground(Color.black);
panel.repaint();
}
}
});

这就是监听键盘的代码,不知道能否做到按下立即连续移动,就像CS那样的效果,请各位指教!
...全文
65 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
FFF9527 2013-06-24
  • 打赏
  • 举报
回复
可以,但是需要后台跑一个绘制线程。 比如按下右键,将跑动方向设置为向右,后台线程每隔30毫秒根据设置的间隔重新绘制一次。按键弹起时,停止绘制线程。 可以参考网上大量的贪吃蛇的代码。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧