gpt4 book ai didi

go - Golang 控制台上的键盘事件

转载 作者:行者123 更新时间:2023-12-05 05:25:42 34 4
gpt4 key购买 nike

我现在正在 Golang 中创建基于 CUI 的扫雷器。我想处理键盘事件来操纵游戏。

你有什么想法来实现这个目标吗?

最佳答案

每个操作系统处理键盘按下的方式略有不同。您可以编写一个库,将这些抽象成一个通用接口(interface),或者更好的是,使用其他人已经编写的接口(interface)。

如评论中所述,termbox-go是一个不错的选择。它很稳定并且被广泛采用。

另一个不错的选择是 eiannone/keyboard它更小,受到 termbox-go 的积极开发和启发。

对于您的特定用例,您可能希望有一个监听键盘事件的 go 例程和一个处理它们的 channel 。以下是使用其文档中的键盘库的示例。

package main

import (
"fmt"
"github.com/eiannone/keyboard"
)

func main() {
keysEvents, err := keyboard.GetKeys(10)
if err != nil {
panic(err)
}
defer func() {
_ = keyboard.Close()
}()

fmt.Println("Press ESC to quit")
for {
event := <-keysEvents
if event.Err != nil {
panic(event.Err)
}
fmt.Printf("You pressed: rune %q, key %X\r\n", event.Rune, event.Key)
if event.Key == keyboard.KeyEsc {
break
}
}
}

关于go - Golang 控制台上的键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191171/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com