繁体   English   中英

两个输入之间的延迟java

[英]delay between two inputs java

我正在使用Java和Libgdx作为研究项目创建一个小游戏。 游戏非常简单:2D,侧视图,由箭头板控制,一切看起来都像是分成单位的网格(玩家为1个单位高,环境潮为1个单位高,...)。 问题在于角色的移动速度很快(必须如此),因此很难仅向左或向右移动1个单位。 我想知道是否有可能在键盘的两个输入之间创建延迟,因为运动部分采用“更新”方法,所以每次我按下一个键时,它都会创建5或10个输入。 我尝试使用Java计时器(例如0.2或0.3秒)来处理它,该计时器在每次按下键时都发生,并且直到计时器完成后,程序才无法收听键盘。 但是我发现它确实很脏,所以我正在寻求您的帮助,以引导我以更体面的方式进行操作。 谢谢。

通过将上次使用时间与当前时间进行比较,可以轻松实现冷却时间。

double coolDownInMillis = 1200;
double lastTime = 0;

public void move() {
    double now = System.currentTimeMillis();
    if(lastTime - now > coolDownInMillis  && pressingTheRightKey()){
        //do what you want
        lastTime = System.currentTimeMillis();
    }
}

或类似的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM