所以我一直在尝试使用语句
编写一个角色正在移动的简单游戏character1.x+=0.1f*delta
其中delta是帧之间的时间(以毫秒为单位)。当我想每帧移动它时,这种方法很有效,但我希望能够以该速度将其移动一定距离(50像素,或我游戏中的单个图块)。使用for()循环使它以最大速度移动精灵,所以我不能这样做。它必须在单个按键上工作,因此它们不必按住键。
当然,我几乎没有用Java做过任何事情,所以我可能会错过一个非常简单的解决方案。现在,我可以将其改为瞬时运动,但看起来真的很生涩。有人可以帮忙吗?
答案 0 :(得分:0)
在这种情况下,您可能希望为组件添加keyListener。
yourComponent.addKeyListener(new KeyAdapter () { // Possibly your Frame
@Override // Overrides the keyPressed event
public void keyPressed(KeyEvent e) {
if ( e == YOUR_KEY_CODE ) {
for( int var = 0; var < yourDistance; var ++ ){
yourSpriteComponent.x += 1;
try{
Thread.sleep(yourTimeInMilliSec);
} catch( Exception e ){
// Your catch block here
}
}
}
}
});
其中YOUR_KEY_CODE是用户需要按下以执行for()循环的键。密码可以在javadoc
中找到