在我正在开发的一个游戏项目中,我的速度严重减慢,甚至到了放弃的地步,因为似乎没有任何库可以简化在文本模式下显示菜单的过程(即, 80x25 文本框,command.com/cmd.exe 的本机界面)。
我需要一些可以提供选择列表的东西,最好包括多个页面,并包括要输入的值以选择其中一个;提示用户;当用户未能输入有效内容时,温和地斥责用户(可能是响铃并重新绘制“选择一个:”提示);并返回可用于确定通过了哪个选项的内容。
事实证明,这比听起来要多得多的工作;现在,在家里让我如此严重减慢速度的完全相同的问题在工作中也出现了(或即将出现)。有谁知道任何非 Copyleft 库具有可以传递选项存储容器、将它们显示在屏幕上并获得用户选择的功能?
Answer:Ncurses 非常适合此目的,包括显式提供菜单驱动程序。它具有 MIT 风格的许可证,使其与商业用途兼容。但是,它不适用于 MS-DOS 或 Windows。 (我在上面引用了 command.com,但没有想到明确说明这是一个有关 Microsoft 架构的问题。)
然而,看起来它过去已经在 DOS 和 Windows 上成功编译,我有信心我能够得到它,或者至少是我需要的部分,工作,特别是考虑到它菜单逻辑而不是我所追求的线条图之类的。问题为 Windows 编写控制台样式应用程序的好资源吗?在这方面也应该有用。
稍后补充答案:Windows 提供了大量开箱即用的显示功能,如图所示here——虽然这确实not与 ncurses 相比,包括菜单显示系统。 ncurses 菜单逻辑和 Windows API 的邪恶混合体?它可能是像 cygwin 一样可行的选择......
很久以后的补充答案:ncurses 和 pdcurses 都可以在 Windows 上非常顺利地工作,即使除了创建和调整显示大小之外不使用 Windows API 进行任何操作。我决定使用 pdcurses,并学会了构建自己的菜单——允许回调、轻松扩展的屏幕消息队列、C++ 字符串类的使用以及其他此类功能。
进一步更新:Curses 的菜单库是用 C 编写的,因此按照 char* 序列工作。我放弃了尝试使用它们,而是编写了自己的菜单,使用低级的curses函数进行屏幕显示。
你要ncurses.它通常与您的发行版一起安装。
这可能有点痛苦,但这是我所知道的在命令行中获得像样的“gui”的最佳方法,而不仅仅是键入字符+回车。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)