【问题标题】:How to capture keystrokes?如何捕捉击键?
【发布时间】:2014-01-01 20:15:53
【问题描述】:

我想做一个简单的 Erlang 控制台游戏。我需要在游戏中通过按键来控制我的“汽车”——向上键或 W 键。有没有办法做到这一点?我读到 wx 库有这样的能力,但我正在寻找一些简单的东西,在我看来 wx 库是矫枉过正的。我想从标准输入中获取一个事件而不是字符。

编辑:

好的,我为此选择了 ncurses 和 cecho 作为 Erlang 库。

【问题讨论】:

    标签: erlang erlang-shell


    【解决方案1】:

    您可以尝试研究kernel 的模块groupuser_drv,但它们都有未记录的接口,并且可能在任何未来的Erlang/OPT 版本中发生变化。您还可以制作自己的驱动程序或 NIF 来处理 termios 设置并进行自己的实现。

    顺便说一句,我肯定会坚持使用wx

    【讨论】:

      【解决方案2】:

      我只知道两种方法:gs 和 wx。

      gs 稍微简单一些,但是文档的第一行是一个警告,告诉我们不建议将 gs 用于新应用程序,请改用 wx :o)

      wx 并没有那么复杂,但是它的文档真的很差,只是参考了 wxWidget 之一。至少有一些演示(演示、数独、xrc ......)有助于开始构建一些东西。一旦你成功地让你的第一个面板和大小调整器工作,让击键或鼠标事件对它们做出反应真的很简单。我的主要困难在于足够快速和流畅地显示图形内容,即使最后只有几行代码(几 10 秒)。

      最后,erlang 控制台旨在评估 erlang 表达式,因此您不可能捕获简单事件并控制该环境中的显示(至少要付出合理的努力)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-30
        • 1970-01-01
        • 1970-01-01
        • 2019-02-18
        • 2014-01-11
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        相关资源
        最近更新 更多