我在 Go 中有一個(gè) REPL 應(yīng)用程序,它應(yīng)該對(duì)鍵盤(pán)按下事件做出反應(yīng)(每個(gè)按鍵按下的不同動(dòng)作),但ReadString希望在閱讀之前按下返回鍵os.Stdin:import ( "bufio" "os")for { reader := bufio.NewReader(os.Stdin) key, _ := reader.ReadString('\n') deferKey(key)}如何對(duì) Go 中的按鍵事件做出反應(yīng)?
2 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
游戲引擎通常實(shí)現(xiàn)這種功能。它們通常也幾乎與平臺(tái)無(wú)關(guān)(通常至少是 Windows、Linux、Mac OS X)。嘗試?yán)鏏zul3D 的鍵盤(pán)庫(kù)。
邏輯是在我的頭頂像
watcher := keyboard.NewWatcher()
// Query for the map containing information about all keys
status := watcher.States()
left := status[keyboard.ArrowLeft]
if left == keyboard.Down {
// The arrow to left is being held down
// Do something!
}
獲取當(dāng)前按下的鍵的列表是迭代映射并列出 value 為 Down 的鍵的問(wèn)題。
- 2 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)
0/150
提交
取消