簡體   English   中英

javascript中的平滑鍵盤輸入

[英]Smooth keyboard input in javascript

我已經開始在 Javascript 中進行編程,以使用 WebGL 制作 3D 應用程序。 我需要以其他方式接收鍵盤輸入,因為我這樣做的方式是這樣的:

var keys = {};
window.addEventListener("keydown", (e) =>  {
    keys[e.which] = true;

    updateKeys();
});

window.addEventListener("keyup", (e) =>  {
    delete keys[e.which];

    updateKeys();
});



function updateKeys() {
    for(var i in keys) {
        if(keys[87] === true) {
            //Move
        }
    }
}

產生非常粗糙的結果並且有口吃。 有什么方法可以讓我獲得流暢的輸入嗎?

這是口吃,因為你的動作與關鍵事件一起運行。 並且您的鍵事件利用event.repeat ,當您按住鍵時會發生這種情況。

你應該做兩件事:

  1. 在您的keydown偵聽器中,添加以下行以忽略重復按下:
if (e.repeat) return;
  1. 將您的移動邏輯移動到其他地方,即window.requestAnimationFrame()處理程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM