鍵盤(pán)是計(jì)算機(jī)的標(biāo)準(zhǔn)配件之一,也是基本的程序輸入裝置。雖然目前大多數(shù)游戲程序以鼠標(biāo)或者使游戲桿來(lái)作為主要的輸入設(shè)備。相比之下,以鍵盤(pán)操縱游戲的方式似乎變得不太重要,但有時(shí)候還是會(huì)使用鍵盤(pán)來(lái)設(shè)計(jì)一些快速鍵的功能,例如跳過(guò)片頭動(dòng)畫(huà)、結(jié)束游戲等
1、虛擬鍵碼
在早期非Windows系統(tǒng)的機(jī)器上,如果一般應(yīng)用程序要取得使用者鍵盤(pán)的輸入,就必須去取得輸入按鍵的“掃描碼(Scan code)”。掃描碼由實(shí)際的鍵盤(pán)硬件所產(chǎn)生,但是由于不同國(guó)家不同區(qū)域所使用的鍵盤(pán)設(shè)備可能不同,因此Windows系統(tǒng)便發(fā)展了一套標(biāo)準(zhǔn)。其解決辦法就是對(duì)所有鍵盤(pán)的按鍵定義出一組通用的“虛擬鍵碼”,也就是說(shuō)在Windows系統(tǒng)下所有的按鍵都會(huì)被視為虛擬鍵(包含鼠標(biāo)鍵在內(nèi)),而每一個(gè)虛擬鍵都有其對(duì)應(yīng)的一個(gè)虛擬鍵碼。
2、鍵盤(pán)消息
Windows系統(tǒng)是一個(gè)消息驅(qū)動(dòng)的環(huán)境,一旦使用者在鍵盤(pán)上進(jìn)入輸入操作,那么系統(tǒng)便會(huì)接受到對(duì)應(yīng)的鍵盤(pán)消息。下面是最常見(jiàn)的3中鍵盤(pán)消息:
WM_KEYDOWN:按下按鍵消息
WM_KEYUP:松開(kāi)按鍵消息
WM_CHAR:字符消息
當(dāng)某一按鍵被按下時(shí),伴隨著這個(gè)操作所產(chǎn)生的是以虛擬鍵碼類(lèi)型傳送的WM_KEYDOWN與WM_KEYUP消息。當(dāng)程序接受到這些消息時(shí),便可由虛擬鍵碼的信息來(lái)得知是哪個(gè)按鍵被按下。
此外,WM_CHAR則是當(dāng)按下的按鍵為定義域ASCII中的打印字符時(shí),便發(fā)出此字符消息。前面介紹的消息循環(huán)中的Translate()函數(shù)的作用便是當(dāng)按下的按鍵為打印字符時(shí),便將虛擬鍵碼消息進(jìn)行轉(zhuǎn)換并且發(fā)出字符消息