【发布时间】:2014-02-05 00:51:09
【问题描述】:
我正在使用 C++ 的 ncurses 库编写一个 roguelike,并希望通过数字键盘控制角色。目前我正在使用以下方法:
case KEY_LEFT:
//Code for left movement
case KEY_RIGHT:
//Code for right movement
...
//Numpad diagonals
case KEY_A1:
//Code for moving up and to the left
case KEY_A3:
//Code for moving up and to the right
...
KEY_A1、KEY_A3、KEY_C1 和 KEY_C3 宏适用于对角线运动,但像 KEY_A2 这样的宏不适用于正交运动。无论numlock是否打开,方向键的代码在这种情况下也不起作用。
如何使用 ncurses 输入数字键盘上的 2、4、6 和 8 键?或者,我是不是搞错了,还有什么更好的方法?
【问题讨论】:
-
用 printw("%o\n",key); 打印键值然后将它与 ncurses.h 中的键值(通常在 /usr/include 中)进行比较,以查看返回的是哪个键。我的键盘为偶数键提供 KEY_UP 等
-
这取决于终端(例如,模拟器)。它适用于 xterm。一些所谓的
TERM=xterm-256color“终端”程序没有实现该功能。