D3D11 输入

本章节将介绍如何从用户直接获取输入数据,比如键盘,鼠标甚至手柄。将学习如何实现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, "dxguid.lib")
#include <dinput.h>

全局声明

初始化一对变量,首先初始化一个IDirectInputDevice8 COM接口,以表示一个物理对象用于接收输入数据。下一行初始化一个结构体,用于获取鼠标状态。随后初始化一个结构体用于从键盘获取

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值