[问题] C++接受方向键的问题

楼主: laughingman (笑面男)   2014-07-07 21:56:42
各位版上的高手们好,小弟目前想用C++写2048这个游戏,
(是个鲁肉脚,所以想多多练习~)
遇到如何输入上下左右键的问题,
google了一下,找到了解答如下:
int c;
while(1){
c=getch();
if(c==224){
c=getch();
switch(c){
case 72:cout<<"上";break;
case 80:cout<<"下";break;
case 75:cout<<"左";break;
case 77:cout<<"右";break;
default:break;
}
}
}
是可以运作没错,也符合小弟的需求。
可是小弟不懂为什么c==224代表方向键,
也不知道为什么72、80、75、77分别代表上下左右,
不知道有没有高手可以帮小弟解惑?
或是提点一些方向让小弟去找资料,非常感谢。
作者: waterCoka (Coka)   2014-07-07 22:35:00
224是"方向键"的extended key, 72 80 75 77代表上下左右关键字:keyboard scancode只有按下功能键or方向键才会有extended key分别回传0x00跟0xE0 也就是0跟224
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-07-07 23:22:00
你写个while(1){c=getch();printf("%c\n",c);}然后在键盘上从左边按到右边 不就知道了
作者: redmilk   2014-07-08 14:41:00
前面的文章有sample code 文章代码 #1JUVIygp
作者: EdisonX (卡卡兽)   2014-07-08 20:48:00
@redmilk 你给的文章代码似乎是 2048 BOT 的网宣 @@
楼主: laughingman (笑面男)   2014-07-09 07:37:00
非常感谢各位大大的回应,我搜寻scancode找到满多资料的,要花一些时间消化XD再次感谢~~

Links booklink

Contact Us: admin [ a t ] ucptt.com