在C代码中可设置如下自编的intokey( )函数,用以接收方向键值。库函数kbhit( )是检测是否有按键被按下,库函数getch( )是读取键盘按键值的,不需按回车,也不回显。dir是代表方向的变量,根据不同的方向键值,让dir取1到4这四个不同的值。其它的程序段就可根据dir的值让东西朝某个方向移动。方向键按下后会产生2个值,第一个是224,另一个分别为上下左右的72、80、75、77,因此要读取2次值来判断。要包含#include
void intokey( )
{ int flag;
if ( kbhit( ) ) //判断有键按下时才执行下面的操作
{ flag = getch( ); //用flag来获取键值
if (flag==224) flag = getch( ); //值为224时表示按下了方向键,要再次获取才行
if (flag==72 && dir != 2) dir = 1; //方向键为“上”且原方向不为下时,让dir=1.
if (flag==80 && dir != 1) dir = 2; //方向键为“下”且原方向不为上时,让dir=2.
if (flag==75 && dir != 4) dir = 3; //方向键为“左”且原方向不为右时,让dir=3.
if (flag==77 && dir != 3) dir = 4; //方向键为“右”且原方向不为左时,让dir=4.
}
}
注:这个函数来源于某些“贪吃蛇”的代码,略有修改,足可获取方向键值。其中的1、2、
3、4分别对应着上下左右。