【问题标题】:Get user input with timeout使用超时获取用户输入
【发布时间】:2012-06-27 00:11:18
【问题描述】:

我正在尝试编写一个脚本来提示用户并等待他们按下指示答案的键,或者如果在固定的时间内没有按下任何键,请选择默认选项。

遗憾的是,我是在嵌入了 lua 的环境中执行此操作的,因此我无法添加库或修改源代码。 io.read 也会阻塞,直到用户按下 enter 并且 io.popen 不可用。

可以这样做吗?

附:我需要一个游戏,其中一些事情是按时间发生的,分阶段进行,你需要决定什么时候采取行动,而没有太多时间去思考它。如果您能想到其他方法,请告诉我。

【问题讨论】:

  • 如果不了解 Lua 嵌入的环境,就不可能知道如何做到这一点。您似乎可以访问某些标准 Lua 库。你能加载外部库(通过require 等等)吗?
  • @NicolBolas 我试过了,但是环境中包含的都是默认加载的。

标签: input lua timeout keypress prompt


【解决方案1】:

等待他们按键 [..] II 不能添加库或修改源 [..] io.read 块,直到用户按下回车键 [..] 可以这样做吗?

没有。 Lua 的 IO 库基于 C 的 IO 库,它们都是基于流的。没有办法检测按键。所以,不,如果不使用本机代码扩展 Lua(你说你做不到),这是不可能的。

【讨论】:

  • 那么,你能想出另一种方法来达到我的目标吗? (编辑帖子)
  • 除了要求他们按一个键然后按 ENTER 外,没有。如果您告诉我们您工作的环境,我们或许可以帮助您找到您忽略的选项。
  • 啊...所以这是你做的有趣的事情。你没有办法,只能请TouchLua的作者给你加这个功能。您可以通过 OpenSSH + iOS SSH 客户端越狱并在 BASH 中运行 Lua 的控制台版本。如果您有 iPad,则可以运行 Codea,它可以让您在 Lua 中编写带有图形和声音的完整游戏。
  • 现在我想起来了,我请求修复作者的应用程序 HandBASIC 中的相同问题(现已修复)。我想他们也不介意这样做,对吧?感谢您的回答,它可能会从数小时的研究中节省很多新手。
猜你喜欢
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多