看板 C_and_CPP 關於我們 聯絡資訊
各位版上的高手們好,小弟目前想用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
waterCoka:224是"方向鍵"的extended key, 72 80 75 77代表上下左右 07/07 22:35
waterCoka:關鍵字:keyboard scancode 07/07 22:35
waterCoka:只有按下功能鍵or方向鍵才會有extended key 07/07 22:39
waterCoka:分別回傳0x00跟0xE0 也就是0跟224 07/07 22:39
MOONRAKER:你寫個while(1){c=getch();printf("%c\n",c);} 07/07 23:22
MOONRAKER:然後在鍵盤上從左邊按到右邊 不就知道了 07/07 23:23
redmilk:前面的文章有sample code 文章代碼 #1JUVIygp 07/08 14:41
EdisonX:@redmilk 你給的文章代碼似乎是 2048 BOT 的網宣 @@ 07/08 20:48
laughingman:非常感謝各位大大的回應,我搜尋scancode找到滿多資 07/09 07:37
laughingman:料的,要花一些時間消化XD再次感謝~~ 07/09 07:38