程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#對游戲手柄的編程開發-API篇(2)(4)

C#對游戲手柄的編程開發-API篇(2)(4)

編輯:關於C語言

經過這樣的處理後,每按一次手柄的按鈕我們的程序也只收到一次按鍵通知,看來我們的目的似乎達 到了 。但在平常玩游戲中,我們同時按下的鍵不單單只有一個,比如邊走邊砍殺敵人,就有可能按住右 方向鍵不放,然後拼命的按A或B鍵,那這樣的話又會出現怎樣的情況呢?這樣的話,在我們的“輪循”中 就有可能出現以下的情況(“->”表示先後順序):

取得當前按下的是“右方向鍵”(1) –> 取得當前按下的是“右方向鍵”(2) –> 取得當前按 下的是“右方向鍵”與A鍵(3) –> 取得當前按下的是“右方向鍵”(4) –> 取得當前按下的是“ 右方向鍵”與B鍵(5)–> 取得當前按下的是“右方向鍵”(6) ……

在上面中,(1)與(2)可通過上面的解決辦法合並為一次,但到第3步時,因為當前按下的鍵有兩個,而 前一次按下的按鈕只有一個,所以因(2)按鍵的不同,又重新發出一次按鍵通知。如此類推,從(1)到(6) 步,程序就認為“右方向鍵”共按了5次!但對於我們“人”來說,這不是我們想要的結果,因為我們只 是一直按住“右方向鍵”不放,所以應該只算按一次。那看來上面的解決方法並不完美 。

讓我們再仔細再看一下上面的那個流程中的(2)與(3)中的差別,明眼的你應該看出來了,它們之間只 是多了一個A鍵。而如果“右方向鍵”在第一步時已發出了按鍵消息通知,那麼在(3)步時,如果我們只發 出“A鍵”的按鍵消息通知,也就說每次只發出本次按下的按鍵集合與上一次按下的按鍵集合的差的按鍵 消息通知的話,那麼在上面的流程中,發出的消息通知就只有:在(1)步時發出“右方向鍵”的按鍵通知 、(3)步時發出A鍵的按鍵通知、(5)步時發出B鍵的按鍵通知。這樣篇頭中的問題就可以完美的解決了 ! !

到此,“C#對游戲手柄的編程開發”的文章就講解完了,下一篇我們會講解一下怎麼去實現第一篇中 說的“用游戲手柄模擬鍵盤或鼠標”的軟件 。很簡單的說,有興趣的朋友希望能回貼支持一下我

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved