如何对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

回到顶部