当前位置: 技术问答>java相关
请问如何让键盘的方向键能够平滑地控制物体的移动?
来源: 互联网 发布时间:2015-11-19
本文导语: 例如我要控制一个Pad物体移动,我用了如下代码: 但操纵时是总是有停顿!请高手赐教! public void handleKeyEvent(KeyEvent e) { //键盘事件 if(e.getKeyCode() == e.VK_LEFT){ Pad.CurrentX--; Pad.move(); ...
例如我要控制一个Pad物体移动,我用了如下代码: 但操纵时是总是有停顿!请高手赐教!
public void handleKeyEvent(KeyEvent e) { //键盘事件
if(e.getKeyCode() == e.VK_LEFT){
Pad.CurrentX--;
Pad.move();
}
if(e.getKeyCode() == e.VK_RIGHT){
Pad.CurrentX++;
Pad.move();
}
public void handleKeyEvent(KeyEvent e) { //键盘事件
if(e.getKeyCode() == e.VK_LEFT){
Pad.CurrentX--;
Pad.move();
}
if(e.getKeyCode() == e.VK_RIGHT){
Pad.CurrentX++;
Pad.move();
}
|
这样应该是不行的。
用thread可以。
修改你的这个函数。
在类里定义一个数组 int[] move=new int[2];
public void handleKeyEvent(KeyEvent e) { //键盘事件
if(e.getKeyCode() == e.VK_LEFT){
move[0]++;
}
if(e.getKeyCode() == e.VK_RIGHT){
move[1]++;
}
把move传进thread,thread的run方法在以一定的速度(可以用sleep()设置)读move的内容,然后把它传给相应的处理移动的函数就可以了。(move要重新置0)
用thread可以。
修改你的这个函数。
在类里定义一个数组 int[] move=new int[2];
public void handleKeyEvent(KeyEvent e) { //键盘事件
if(e.getKeyCode() == e.VK_LEFT){
move[0]++;
}
if(e.getKeyCode() == e.VK_RIGHT){
move[1]++;
}
把move传进thread,thread的run方法在以一定的速度(可以用sleep()设置)读move的内容,然后把它传给相应的处理移动的函数就可以了。(move要重新置0)