如何对Go中的按键事件做出反应?
我在Go中有一个REPL应用,该应用应该对键盘按下事件(每个按下的按键的动作有所不同)做出反应,但是ReadString
希望在阅读之前按下返回键os.Stdin
:
import ( "bufio"
"os"
)
for {
reader := bufio.NewReader(os.Stdin)
key, _ := reader.ReadString('\n')
deferKey(key)
}
我如何对Go中的按键事件做出反应?
回答:
游戏引擎通常实现这种功能。它们通常也与平台无关(通常至少是Windows,Linux,Mac OS
X)。例如尝试Azul3D的键盘库。
逻辑就像我的头上一样
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!
}
要获得当前当前按下的键的列表,只需遍历地图并列出value为Down的键即可。
以上是 如何对Go中的按键事件做出反应? 的全部内容, 来源链接: utcz.com/qa/398957.html