D3D11 输入

本文详细介绍了在Direct3D11中如何利用DirectInput获取和处理用户输入,如键盘、鼠标和手柄数据。通过DirectInput API,可以避免Win32 API的冗余处理,支持更多设备功能,例如手柄的强制反馈。文中还讲解了如何初始化DirectInput,创建设备,设置数据格式,检测输入以及释放设备,展示了如何根据输入更新场景。
摘要由CSDN通过智能技术生成

本章节将介绍如何从用户直接获取输入数据,比如键盘,鼠标甚至手柄。将学习如何实现Direct输入。

主要是使用Direct输入API,或许你会疑惑为什么我们不使用Win32的API来获取用户输入,毕竟,它能够找到键盘上的哪一个值被按下,以及从鼠标甚至手柄获取输入数据,然而,Win32 API设计初衷是为键盘入口程序服务的,不是为需要速度的实时输入服务的。当从Win32 API获取输入时,它必须处理按键,将它们转为ascii并且对特殊的windows按键比如alt还会有许多额外的处理。对于游戏来说不需要如此多的处理,并且要记住的是,我们不能直到我们的消息队列为空才去渲染一帧。实际上若这样做会非常缓慢。另外一件事就是,Win32 API 只能够从3个按钮获取输入,x和y轴,和一个鼠标上的滚轮值。如今的鼠标的功能比这些都多。而Direct Input能够支持任意的设备,只要该设备使用了Direct Input所写的驱动就行。使用Direct Input,我们还可以使用强制反馈功能,也就是手柄能够从应用程序获得输入数据。


头和库文件

要使用direct input功能需要包含以下头和库文件:

#pragma comment (lib, "dinput8.lib")
#pragma comment (lib, "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值