使用DirectInput進(jìn)行交互(4) 摘要:
游戲桿是游戲控制的支柱,盡管游戲桿不是游戲惟一可以使用的輸入設(shè)備,但它卻是專門為玩游戲而設(shè)計(jì)的。將游戲桿向左推,游戲人物就會(huì)向左走,按下一個(gè)按鍵,游戲中的英雄就會(huì)揮舞他的劍,還有什么比這更容易的嗎?
游戲桿的形狀和大小千差萬(wàn)別,商店貨架上的方向盤控制器就是一個(gè)游戲桿。如果去過街機(jī)游戲廳,就可能玩過允許(或要求)玩家站在很大的踏雪板或騎在小摩托車上來(lái)控制屏幕上的角色之類的游戲。別驚奇,這些踏雪板和摩托車甚至都可以看成是游戲桿!
使用DirectInput進(jìn)行交互(3) 摘要:
鼠標(biāo)的工作原理理解起來(lái)并不難,在最底層,鼠標(biāo)通知系統(tǒng)它要移動(dòng)到某個(gè)方向,每次移動(dòng)一個(gè)記號(hào),驅(qū)動(dòng)程序讀取這個(gè)數(shù)據(jù)后,將記號(hào)轉(zhuǎn)化為相對(duì)移動(dòng)值。
在通常的應(yīng)用程序中,windows得到鼠標(biāo)的移動(dòng)并通過消息處理函數(shù)將移動(dòng)作為消息報(bào)告給用戶。使用消息處理函數(shù)有時(shí)速度會(huì)非常慢,因?yàn)閭鬟f給消息處理函數(shù)的每個(gè)消息要被插入到隊(duì)列中,這樣消息就只會(huì)按照他們加入到隊(duì)列中的順序被處理。要加快接收以及處理鼠標(biāo)輸入的過程,就必須直接同鼠標(biāo)的驅(qū)動(dòng)程序進(jìn)行交互,而不采用windows消息處理函數(shù)。
使用DirectInput進(jìn)行交互(2) 摘要: 本篇是 使用DirectInput進(jìn)行交互(1)的續(xù)篇。
設(shè)置數(shù)據(jù)格式
每種設(shè)備都有一種用于讀取數(shù)據(jù)的特定數(shù)據(jù)格式,需要考慮的東西也很多,包括鍵、鼠標(biāo)按鍵、軸等。因此要使程序從設(shè)備讀取數(shù)據(jù),首先必須告訴
DirectInput讀取這種數(shù)據(jù)所采用的格式。通過 IDirectInputDevice8::SetDataFormat函數(shù)即可滿足上述要求。
使用DirectInput進(jìn)行交互(1) 摘要:
DirectInput是一些COM對(duì)象的集合(和所有DirectX組件相同),這些COM對(duì)象描繪了輸入系統(tǒng)和各個(gè)輸入設(shè)備。最主要的對(duì)象是DirectInput8,它用于初始化系統(tǒng)以及創(chuàng)建輸入設(shè)備接口。
DirectInput COM對(duì)象:
IDirectInput8:主要的DirectInput8 COM接口,其他所有接口都通過這個(gè)接口進(jìn)行查詢。
DirectInputDevice8:用于輸入設(shè)備的COM接口,每個(gè)設(shè)備都有自己?jiǎn)为?dú)的接口可供使用。
DirectInputEffect:用于力反饋效果的 COM接口,比如某些游戲桿和某些鼠標(biāo)上的力反饋效果。