簡體   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