【发布时间】:2014-01-01 20:15:53
【问题描述】:
我想做一个简单的 Erlang 控制台游戏。我需要在游戏中通过按键来控制我的“汽车”——向上键或 W 键。有没有办法做到这一点?我读到 wx 库有这样的能力,但我正在寻找一些简单的东西,在我看来 wx 库是矫枉过正的。我想从标准输入中获取一个事件而不是字符。
编辑:
好的,我为此选择了 ncurses 和 cecho 作为 Erlang 库。
【问题讨论】:
标签: erlang erlang-shell
我想做一个简单的 Erlang 控制台游戏。我需要在游戏中通过按键来控制我的“汽车”——向上键或 W 键。有没有办法做到这一点?我读到 wx 库有这样的能力,但我正在寻找一些简单的东西,在我看来 wx 库是矫枉过正的。我想从标准输入中获取一个事件而不是字符。
编辑:
好的,我为此选择了 ncurses 和 cecho 作为 Erlang 库。
【问题讨论】:
标签: erlang erlang-shell
您可以尝试研究kernel 的模块group 和user_drv,但它们都有未记录的接口,并且可能在任何未来的Erlang/OPT 版本中发生变化。您还可以制作自己的驱动程序或 NIF 来处理 termios 设置并进行自己的实现。
顺便说一句,我肯定会坚持使用wx。
【讨论】:
我只知道两种方法:gs 和 wx。
gs 稍微简单一些,但是文档的第一行是一个警告,告诉我们不建议将 gs 用于新应用程序,请改用 wx :o)
wx 并没有那么复杂,但是它的文档真的很差,只是参考了 wxWidget 之一。至少有一些演示(演示、数独、xrc ......)有助于开始构建一些东西。一旦你成功地让你的第一个面板和大小调整器工作,让击键或鼠标事件对它们做出反应真的很简单。我的主要困难在于足够快速和流畅地显示图形内容,即使最后只有几行代码(几 10 秒)。
最后,erlang 控制台旨在评估 erlang 表达式,因此您不可能捕获简单事件并控制该环境中的显示(至少要付出合理的努力)。
【讨论】: