摘 要 手柄對于游戲來說密不可分。介紹使用易語言編程實現游戲手柄到鍵盤的映射,讓只支持鍵盤操作的游戲支持手柄操作。
關鍵詞 易語言;游戲手柄;鍵盤;映射
1 引言
目前市面上有很多游戲,僅僅支持鍵盤和鼠標進行輸入,如果用游戲手柄來玩的話,相信玩家肯定會有另一番感覺。本文將采用國產編程開發工具“易語言”實現一個游戲手柄到鍵盤映射程序。
2 易語言
易語言是一個自主開發,適合國情的漢語編程環境易語言取游戲進程id,是一個以漢語字、詞為基于編程的、全可視化的、跨主流操作系統平臺的編程工具環境;擁有簡、繁漢語以及英語、日語等多語種版本;能與常用的編程語言互相調用;具有充分利用API,COM、DLL、OCX組件、各種主流數據庫、各種實用程序等多種資源的接口和支撐工具。
易語言的整體運行效率很高易語言取游戲進程id,在主流的計算機上,即便是在開發環境中運行,也絲毫不會有停頓感。易語言本身的幫助功能非常強大,本文所涉及到的在開發環境中的各種操作不再詳細進行敘述。
3 軟件結構
該映射工具主要實現兩個主要的功能:(1)從手柄按鈕到鍵盤按鍵的映射;(2)映射方案的管理。
3.1 手柄按鈕到鍵盤按鍵的映射
該功能主要實現從手柄按鈕被按下后,截獲手柄的輸入并模擬成鍵盤輸入這個過程。獲取手柄輸入的常用的方法有兩種,第一種是使用系統中的 Input組件;第二種是使用 API系統函數實現。
易語言是一種非常強大、高度集成的開發工具,它集成了非常多的支持庫。這當中就包含了支持庫中,同時它也提供了 API的調用,只是使用前需要聲明API函數原型,顯得較為繁瑣。在本程序中為了簡單起見,使用作為獲取游戲手柄輸入的方法。實現了輸入的獲取,接下來就是將手柄輸入模擬成鍵盤的輸入。
模擬鍵盤的輸入,使用的是中一個名為的API函數。在易語言中,的中文名稱是“模擬鍵盤行動_”。
該函數的C語言原型如下:
VOID (BYTE bVk, BYTE bScan, DWORD , PTR );
該函數共有四個參數,各參數含義如表1。
表1
參數名
含義
bVk
被模擬的鍵盤鍵的虛擬鍵值
bScan
該參數保留未使用,一般都為0
定義函數操作的一個標志位集,例如:表示該鍵將被釋放
通常不用的一個值,一般都為0
3.2 按鈕映射方案的管理
通常每個游戲的鍵盤鍵位設置都不一樣,為了使程序具有更好的通用性,需要為不同的游戲建立不同的按鈕鍵位映射方案,在程序運行過程中動態管理這些方案。方案的管理分為五個部分,分別是:“方案的建立”、“方案的刪除”、“方案內容的修改”、“方案的加載與保存”和“方案的應用”。