传统做法如下:
if (_kbhit())
{
char input;
input = _getch();
if (input == 'a')
{
X--;
}
if (input == 's')
{
Y++;
}
}
此种方法虽然实现了角色的移动,但缺点是角色只能往上下左右一个方向移动,且只能按一个键,所以我们就要用今天介绍的新函数。
新函数:GetAsyncKeyState();
利用Windows API中的GetAsyncKeyState函数,可以同时识别两个按键同时被按下的情况。
头文件为<Windows.h>
示例如下:
if((GetAsyncKeyState(0x41) & 0x88)
{
X- -;
}
if((GetAsyncKeyState(0x53) & 0x88)
{
Y++;
}
上面代码中0x41和0x53分别为A和S的ASCII码的16进制表示(注意:是大写A和S的ASCII,小写无效!)
用户可同时按下键盘上的a和s实现角色同时往左和往下移动。