java-(slick2D)在按键上以设定速度移动精灵设定距离
所以我一直在尝试写一个简单的游戏,其中一个角色正在使用语句移动java-(slick2D)在按键上以设定速度移动精灵设定距离,java,distance,Java,Distance,所以我一直在尝试写一个简单的游戏,其中一个角色正在使用语句移动 character1.x+=0.1f*delta 其中delta是帧之间的时间(以毫秒为单位)。当我想在每一帧移动它时,这很有效,但我希望能够以该速度移动它一个设定的距离(50像素,或者游戏中的一个瓷砖)。使用for()循环可以使精灵以最大速度移动,所以我不能这样做。它必须在单个按键上工作,所以他们不必按住键 当然,我几乎没有在Java中做过任何事情,所以可能有一个非常愚蠢的简单解决方案我没有。现在,我可以把它改成瞬时运动,但它看
character1.x+=0.1f*delta
其中delta是帧之间的时间(以毫秒为单位)。当我想在每一帧移动它时,这很有效,但我希望能够以该速度移动它一个设定的距离(50像素,或者游戏中的一个瓷砖)。使用for()循环可以使精灵以最大速度移动,所以我不能这样做。它必须在单个按键上工作,所以他们不必按住键
当然,我几乎没有在Java中做过任何事情,所以可能有一个非常愚蠢的简单解决方案我没有。现在,我可以把它改成瞬时运动,但它看起来真的很不稳定。有人能帮忙吗?在这种情况下,您可能需要在组件中添加一个keyListener。
addKeyListener(新的KeyAdapter(){//可能是您的框架
@覆盖//覆盖按键事件
按下公共无效键(按键事件e){
如果(e==你的密码){
for(int-var=0;var
其中,您的\u键\u代码是用户需要按下的键,以便执行for()循环。钥匙代码可在中找到
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
}
}
}
}
});