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