首頁 >後端開發 >Golang >如何在 Go 中讀取各個鍵盤按鍵而不等待返回?

如何在 Go 中讀取各個鍵盤按鍵而不等待返回?

Linda Hamilton
Linda Hamilton原創
2024-11-26 07:45:11314瀏覽

How Can I Read Individual Keyboard Keypresses in Go Without Waiting for Return?

在Go 中讀取鍵盤輸入

在Go 中處理鍵盤輸入提出了獨特的挑戰,因為標準ReadString 函數需要在讀取輸入之前按下返回鍵。為了克服這一限制,需要採用替代方法來單獨捕獲按鍵事件。

一個有前景的解決方案在於利用遊戲引擎庫,例如 Azul3D 的鍵盤庫。遊戲引擎通常提供與平台無關的輸入處理,使您能夠註冊各種擊鍵的回調。

例如,使用鍵盤庫,您可以建立一個監視所有按鍵狀態的觀察程式:

watcher := keyboard.NewWatcher()

接下來可以查詢watcher來取得特定按鍵的狀態,例如左箭頭key:

status := watcher.States()
left := status[keyboard.ArrowLeft]

如果該鍵被按下,狀態將設定為「Down」:

if left == keyboard.Down {
    // The arrow to left is being held down
    // Do something!
}

透過迭代觀察者傳回的映射,您可以識別目前按下的所有按鍵並做出相應回應。

以上是如何在 Go 中讀取各個鍵盤按鍵而不等待返回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn