OCaml 读取没有图形的按键 window
OCaml read pressed key without graphical window
编辑。我在 Windows 环境中工作。
我想用 OCaml 在控制台输出中编写一个简单的游戏。我需要能够使用 'read_key' 函数。但是:
- 图形模块报错:
Exception: Graphics.Graphic_failure "graphic screen not opened".
但我不想打开图形window。
- 函数
read_line
强制用户在每次按键后按"return"...
使用纯 OCaml 无法实现此类功能。您将需要调用特定于平台的库。这不是 OCaml 问题,其他语言也是如此,包括 python、java、c 等。实际上,以可移植的方式与终端交互是一种火箭科学。主要是出于历史原因。
我怀疑你不想陷入这样的麻烦,所以我可以建议一些简单的解决方案:
使用 OCamlSDL 库,- 您正在开发游戏,SDL 用于游戏
使用图形模块,是的,你需要打开图形window,你的游戏将不是一个纯粹的控制台......但这也许不是一个大问题。此外,您可以制作黑色背景并模拟终端:)
安装 OCaml 的 Cygwin 版本。您将获得一个类似 unix 的环境,Unix.tc_*
将开始工作。
切换到正常操作系统。通常我指的是类 Unix。您可以第一次使用虚拟机或容器,例如 Docker。
编辑。我在 Windows 环境中工作。
我想用 OCaml 在控制台输出中编写一个简单的游戏。我需要能够使用 'read_key' 函数。但是:
- 图形模块报错:
Exception: Graphics.Graphic_failure "graphic screen not opened".
但我不想打开图形window。 - 函数
read_line
强制用户在每次按键后按"return"...
使用纯 OCaml 无法实现此类功能。您将需要调用特定于平台的库。这不是 OCaml 问题,其他语言也是如此,包括 python、java、c 等。实际上,以可移植的方式与终端交互是一种火箭科学。主要是出于历史原因。
我怀疑你不想陷入这样的麻烦,所以我可以建议一些简单的解决方案:
使用 OCamlSDL 库,- 您正在开发游戏,SDL 用于游戏
使用图形模块,是的,你需要打开图形window,你的游戏将不是一个纯粹的控制台......但这也许不是一个大问题。此外,您可以制作黑色背景并模拟终端:)
安装 OCaml 的 Cygwin 版本。您将获得一个类似 unix 的环境,
Unix.tc_*
将开始工作。切换到正常操作系统。通常我指的是类 Unix。您可以第一次使用虚拟机或容器,例如 Docker。