如何在Erlang的标准输入上读取字符

Dai*_*wen 5 erlang io-buffering

我正在尝试编写一个基本的视频游戏,并希望从键盘输入输入.因此,我需要在生成标准输入时读取字符.由于缓冲,io:get_chars,io:fread只有在按下返回键后才会返回.

  1. 是否可以在生成标准输入时访问这些字符?
  2. 我该怎么办?

项目的目的不是制作真实的游戏,它只是学习Erlang的一种方式.因此,性能不是问题.

编辑:这个项目似乎提供了我正在寻找的功能.但是,如果我没有弄错的话,代码的一部分是用C语言编写的,并通过消息传递将字符发送到Erlang部分.对于这种方法,是否存在Erlang原生的替代方案,或者这是唯一可行的方法吗?

Sou*_*lls 2

一般来说,在处理游戏的键盘输入时,从 STDIN 读取并不是您想要的方式。您希望能够在任何给定时刻读取按键的状态。

看看wx(和参考手册

它是wxWidgets库的 Erlang 接口,并且包含用于处理各种输入(包括键盘)的接口。