当前位置: 首页 > 面试题库 >

如何对Go中的按键事件做出反应?

萧安怡
2023-03-14
问题内容

我在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的键即可。



 类似资料:
  • 问题内容: 在我的应用程序中,我使用默认按钮。我希望它在 释放 Key 时作出反应。不是当是关键 按下 。 我从按钮中删除了。但这对我没有用。我该怎么办? 这是示例代码。 问题答案:

  • 可能的重复: 跨浏览器方式,以便在按住键时自动获取重复的按键事件 我正在尝试用JavaScript/CSS/超文本标记语言创建一个简单的游戏,我正在使用jQuery(和一点下划线)来处理按键。玩家使用箭头键控制一个块。我在同时处理多个按键时遇到了问题。我有一个系统,其中闭包跟踪所有按下的箭头键。如果玩家按以下顺序按键,这个效果很好: 玩家按下(块向下移动) 玩家按下左(块对角线向下移动-左) 玩家

  • 我试图让机器人等待用户的反应,但我不知道如何设置它。我已经试过了,我也在第一部分中加入了,但是当它对消息作出反应时,使用了1️⃣ 机器人回答。

  • 我想在下面的文本框中捕捉enter键按下事件。为了更清楚地说明这一点,我使用了一个ng repeat来填充tbody。以下是HTML: 这是我的模块: 我正在使用资源填充表格,我的控制器代码是:

  • 问题内容: 我想在下面的文本框中捕获Enter键按下事件。为了更清楚地说明,我使用a 来填充tbody。这是HTML: 这是我的模块: 我正在使用一种资源来填充表,而我的控制器代码是: 问题答案: 您需要添加,如下所示: Javascript : HTML :

  • 嗨,在用pygame开发游戏时,有一个问题其实并不重要,但它一直困扰着我一段时间。 所以上面是一个工作代码,我相信 同样有效。 然而,当我只是尝试类似“event.key==pyplay。K_RIGHT:",python给我一个错误,说没有属性'key'。虽然我知道选择以上2个代码会更合理,而不仅仅是“event.key==pyplay。K_RIGHT:",我不知道为什么pyplay会说事件没有属