[問題] C++接受方向鍵的問題

看板C_and_CPP (C/C++)作者 (笑面男)時間11年前 (2014/07/07 21:56), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
各位版上的高手們好,小弟目前想用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分別代表上下左右, 不知道有沒有高手可以幫小弟解惑? 或是提點一些方向讓小弟去找資料,非常感謝。 -- 如果這個世界有神, 祂必定不賞善罰惡,也沒有任何道德觀, 祂只保證有生必有死,曾經經歷出生的生命,必以死亡做終結。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.142.87 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1404741414.A.426.html

07/07 22:35, , 1F
224是"方向鍵"的extended key, 72 80 75 77代表上下左右
07/07 22:35, 1F

07/07 22:35, , 2F
關鍵字:keyboard scancode
07/07 22:35, 2F

07/07 22:39, , 3F
只有按下功能鍵or方向鍵才會有extended key
07/07 22:39, 3F

07/07 22:39, , 4F
分別回傳0x00跟0xE0 也就是0跟224
07/07 22:39, 4F

07/07 23:22, , 5F
你寫個while(1){c=getch();printf("%c\n",c);}
07/07 23:22, 5F

07/07 23:23, , 6F
然後在鍵盤上從左邊按到右邊 不就知道了
07/07 23:23, 6F

07/08 14:41, , 7F
前面的文章有sample code 文章代碼 #1JUVIygp
07/08 14:41, 7F

07/08 20:48, , 8F
@redmilk 你給的文章代碼似乎是 2048 BOT 的網宣 @@
07/08 20:48, 8F

07/09 07:37, , 9F
非常感謝各位大大的回應,我搜尋scancode找到滿多資
07/09 07:37, 9F

07/09 07:38, , 10F
料的,要花一些時間消化XD再次感謝~~
07/09 07:38, 10F
文章代碼(AID): #1JkgScGc (C_and_CPP)
文章代碼(AID): #1JkgScGc (C_and_CPP)