键盘控制函数

键盘控制函数

************************************made by FireHumansSkeleton

void kbc(char k,string dos)//                              键盘
{
   
 int doing;
 /*
 格式:
 	k=1	按下
	k=2	松开
	else	按k
 */
 if(k==1||k==2)
 {
   
  if(dos=="back")  doing=  8;else
  if(dos=="enter") doing= 13;else
  if(dos=="esc")   doing= 27;else
  if(dos=="tab")   doing=  9;else
  if(dos=="caps")  doing= 20;else
  if(dos=="num")   doing=144;else
  if(dos=="scroll")doing=145;else
  if(dos=="home")  doing= 36;else
  if(dos=="end")   doing= 35;else
  if(dos=="insert")doing= 45;else
  if(dos=="delete")doing= 46;else
  if(dos=="pgup")  doing= 33;else
  if(dos=="pgdn")  doing= 34;else
  if(dos=="ctrl")  doing= 17;else
  if(dos=="shift") doing= 16;else
  if(dos=="alt")   doing= 18;else
  if(dos=="win"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码无法用键盘控制是因为 _kbhit() 函数在 Windows 系统下并不是一个标准的 C/C++ 函数,无法在其他系统或编译器中使用。如果要在 Windows 系统下使用 _kbhit() 函数,需要包含 conio.h 头文件。请确保你的代码中已经包含了 conio.h 头文件,否则可以加入以下代码: ``` #include <conio.h> ``` 如果已经包含了 conio.h 头文件,但依然无法使用 _kbhit() 函数,可能是因为你的编译器不支持该函数。你可以尝试使用其他方法来判断用户是否按下了键盘,例如使用 GetAsyncKeyState() 函数。你可以将以下代码替换掉原来的 if (_kbhit()) 代码: ``` if (GetAsyncKeyState(VK_LEFT) & 0x8000) //判断用户是否按下左箭头键 { if (snake.position != right) snake.position = left; } else if (GetAsyncKeyState(VK_RIGHT) & 0x8000) //判断用户是否按下右箭头键 { if (snake.position != left) snake.position = right; } else if (GetAsyncKeyState(VK_UP) & 0x8000) //判断用户是否按下上箭头键 { if (snake.position != down) snake.position = up; } else if (GetAsyncKeyState(VK_DOWN) & 0x8000) //判断用户是否按下下箭头键 { if (snake.position != up) snake.position = down; } ``` 以上代码中,GetAsyncKeyState() 函数用来判断用户是否按下了指定的虚拟键码,例如 VK_LEFT 表示左箭头键,VK_RIGHT 表示右箭头键,VK_UP 表示上箭头键,VK_DOWN 表示下箭头键。如果用户按下了对应的键,函数返回值的最高位为 1,否则为 0。因此,我们使用 & 0x8000 来判断返回值的最高位是否为 1,如果是,则表示用户按下了相应的键。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值