如何在 libgdx 中计算按下按钮和释放按钮之间的时间

how to calculate time between button press and button release in libgdx

public void shotPower() {
    float startTime = System.currentTimeMillis();
        if (Gdx.input.getCurrentEventTime(Input.Keys.S)){
            float endTime = System.currentTimeMillis();

            float time = endTime - startTime;
            System.out.println(time);
    }
}

此代码无效。

我按下按钮 "S" 然后按下它一段时间,我不知道如何计算按下和释放之间的时间。也许这样的方法已经存在了。我知道它以某种方式与 System.currentTimeMillis 相关联。请帮忙

对不起我的英语,我才刚刚开始学习编程。

public long isPressed() {

    long time = 0;

    long time1 = 0;

    if (Gdx.input.isKeyPressed(Input.Keys.SPACE)) {

        time = System.currentTimeMillis() / 1000;

        System.out.println(time);
    }
return time;
}

应该可以,只需要几秒钟的时间。

您目前正在计算 if 语句之间所花费的时间,这将非常接近于零

改用 InputProcessor。然后您将可以使用方法 keyDown()keyUp() 来比较时间。由于这两种方法都不能共享局部变量,而且我们有多个键,所以我使用 HashMap 来存储数据。

// integer is keycode, long is the time it was pressed
private HashMap<Integer, Long> keyTime = new HashMap<Integer, Long>();

@Override
public boolean keyDown(int keyCode) {

    keyTime.put(keyCode, System.currentTimeMillis());

    return true;
}

@Override
public boolean keyUp(int keyCode) {

    if(keyTime.containsKey(keyCode) {
        float time = endTime - keyTime.get(keyCode);
        System.out.println(time);
        keyTime.remove(keyCode);
    }

    return true;
}