- 10
- 0
- 约1.62万字
- 约 43页
- 2019-01-11 发布于福建
- 举报
专题6键盘和前鼠标控制
抛砖引玉 交互性是游戏的最基本特征,玩家必须与计算机不断地交互并得到反应,这才是完整的游戏体验。那么,玩家和游戏如何进行交互? 目前很流行的游戏控制方式:w键前进,a键向左移动,s键后退,d键向右移动,按下鼠标左键攻击,按住鼠标右键转动视角…… 游戏控制是一款游戏的基本要素,没有对游戏的控制,玩家和游戏就无从交互。 麻雀虽小,五脏俱全 传统游戏控制 DirectInput 简介 DirectX键盘控制 DirectX鼠标控制 游戏控制综合运用 传统游戏控制 在Win32 API编程中,键盘和鼠标的用户输入信息并不是直接传递给应用程序来处理的,而是转发回Windows操作系统,最后由Windows回调应用程序的窗口过程函数进行相应的消息代码处理。这种处理用户输入的方式,执行效率低。 DirectInput 简介 DirectInput是DirectX的一个组件接口,提供了大量的接口函数处理用户在键盘、鼠标、游戏杆以及力反馈等游戏装置上的输入。 DirectInput直接与硬件驱动程序通信,因此它可以较快的处理用户的输入。并且在控制面板上做的任何键盘和鼠标的属性设置(如键盘按键的延迟重复率和鼠标的左右手习惯等),都不会对应用DirectInput的程序起作用,除非是修改由驱动程序提供的属性设置。 DirectX键盘控制 创建IDirectInput接口对象 创建DirectInput设备对象 设置DirectInput设备的数据格式 设置DirectInput设备的协调级别 设置DirectInput设备的属性 获取输入设备的访问权 读取键盘的输入 关闭DirectInput,释放输入设备 1、创建IDirectInput接口对象 在创建具体的输入设备对象之前,首先要利用DirectInput8Create建立一个IDirectInput接口对象。 例: DirectInput对象的创建步骤 IDirectInput8* Input=0; HRESULT hr=0; hr = DirectInput8Create( hInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)Input, NULL); if(FAILED(hr)) { ::MessageBox(0, DirectInput8Create( ) - FAILED, 0, 0); return false; } 2、创建DirectInput设备对象 建立DirectInput接口对象之后,就可以利用IDirectInput8接口所提供的CreateDevice函数,为键盘、鼠标和游戏杆等输入装置建立一个对应的DirectInput设备对象,此后就可用设备对象来读取用户的输入。 例:创建DirectInput键盘设备 IDirectInputDevice8* InputDevice=0; hr=Input-CreateDevice(GUID_SysKeyboard, InputDevice, NULL); if(FAILED(hr)) { ::MessageBox(0, CreateDevice()- Keyboard - FAILED, 0, 0); d3d::ReleaseIDirectInput8*(Input); //释放接口 return false; } 3、设置DirectInput设备的数据格式 每种设备都有一种用于读取数据的特定数据格式,因此要使程序从设备读取数据,首先必须告诉 DirectInput读取这种数据所采用的格式。可以用IDirectInputDevice8接口提供的SetDataFormat函数实现。 例:设置键盘设备的数据格式 hr=InputDevice-SetDataFormat(c_dfDIKeyboard); if(FAILED(hr)) { ::MessageBox(0, SetDataFormat( ) - FAILED, 0, 0); d3d::
您可能关注的文档
最近下载
- 如何找回误删微信好友,微信好友一键恢复.doc VIP
- 《蜀道难》课件34张.pptx VIP
- 《建筑地面工程施工质量验收规范》GB-50209-2022.pdf VIP
- 尼龙拉架织物的除油原理和产品资料.ppt VIP
- 2026年黑龙江农垦职业学院单招职业技能考试题库附答案.docx VIP
- 在带头强化政治忠诚、提高政治能力等“五个带头”方面个人对照检查材料【两篇】供参考2026.docx VIP
- 大病低保申请书.docx VIP
- 盐酸(31%)安全技术说明书.doc VIP
- 解读GB 6441-2025《生产安全事故分类与编码》.pptx
- FUJITSU 富士通存储系统ETERNUS DX60 S4 DX100 S4 DX200 S4, ETERNUS DX60 S3 DX100 S3 DX200 S3, ETERNUS DX500 S3 DX600 S3, ETERNUS DX8100 S3 DX8700 S3 DX8900 S3, ETERNUS AF250 AF650, ETERNUS DX200F 用户手册.pdf VIP
原创力文档

文档评论(0)