2024年5月30日发(作者:)
易语言编程实现游戏手柄到键盘映射(一)
摘 要 手柄对于游戏来说密不可分。介绍使用易语言编程实现游戏手柄到键
盘的映射,让只支持键盘操作的游戏支持手柄操作。
关键词 易语言;游戏手柄;键盘;映射
1 引言
目前市面上有很多游戏,仅仅支持键盘和鼠标进行输入,如果用游戏手柄
来玩的话,相信玩家肯定会有另一番感觉。本文将采用国产编程开发工具“易
语言”实现一个游戏手柄到键盘映射程序。
2 易语言
易语言是一个自主开发,适合国情的汉语编程环境,是一个以汉语字、词
为基于编程的、全可视化的、跨主流操作系统平台的编程工具环境;拥有简、
繁汉语以及英语、日语等多语种版本;能与常用的编程语言互相调用;具有充
分利用API,COM、DLL、OCX组件、各种主流数据库、各种实用程序等多种资
源的接口和支撑工具。
易语言的整体运行效率很高,在主流的计算机上,即便是在开发环境中运
行,也丝毫不会有停顿感。易语言本身的帮助功能非常强大,本文所涉及到的
在开发环境中的各种操作不再详细进行叙述。
3 软件结构
该映射工具主要实现两个主要的功能:(1)从手柄按钮到键盘按键的映射;
(2)映射方案的管理。
3.1 手柄按钮到键盘按键的映射
该功能主要实现从手柄按钮被按下后,截获手柄的输入并模拟成键盘输入
这个过程。获取手柄输入的常用的方法有两种,第一种是使用系统中DirectX
的Direct Input组件;第二种是使用Windows API系统函数实现。
易语言是一种非常强大、高度集成的开发工具,它集成了非常多的支持库。
这当中就包含了DirectX支持库中,同时它也提供了Windows API的调用,只
是使用前需要声明API函数原型,显得较为繁琐。在本程序中为了简单起见,
使用DirectX作为获取游戏手柄输入的方法。实现了输入的获取,接下来就是
将手柄输入模拟成键盘的输入。
模拟键盘的输入,使用的是Windows中一个名为keybd_event的API函数。
在易语言中,keybd_event的中文名称是“模拟键盘行动_”。
该函数的C语言原型如下:
VOID keybd_event(BYTE bVk, BYTE bScan, DWORD dwFlags, PTR
dwExtraInfo);
该函数共有四个参数,各参数含义如表1。
表1
参数名 含义
bVk
bScan
dwFlags
被模拟的键盘键的虚拟键值
该参数保留未使用,一般都为0
定义函数操作的一个标志位集,例如:
KEYEVENTF_KEYUP表示该键将被释放
dwExtraInfo 通常不用的一个值,一般都为0
3.2 按钮映射方案的管理
通常每个游戏的键盘键位设置都不一样,为了使程序具有更好的通用性,
需要为不同的游戏建立不同的按钮键位映射方案,在程序运行过程中动态管理
这些方案。方案的管理分为五个部分,分别是:“方案的建立”、“方案的删
除”、“方案内容的修改”、“方案的加载与保存”和“方案的应用”。
发布评论