[問題] 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