当前位置: 技术问答>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)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。