分享
 
 
 

DirectInput介绍

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

DirectInput介绍

Microsoft DirectInput是一个输入设备的应用程序接口(API),其中就包括鼠标、键盘、游戏杆及其他游戏控制器,如力回馈(输入/输出)设备。

本节主要对DirectInput的功能作了简要说明,并简介了如何创建一个DirectInput应用程序。本节主要包含以下内容:

DirectInput的能力

从DirectInput开始

要全面理解DirectInput的工作方式,请参照“理解DirectInput”。

要逐步学习DirectInput API编程的话,可以参照以下章节:

应用DirectInput

DirectInput C/C++ 教程

DirectInput的能力

除了支持Microsoft Win32 API不支持的设备服务外,DirectInput还能以直接访问硬件驱动的方式提供比Microsoft Windows消息更快的访问方式。

即便应用程序处于后台,DirectInput也可以应用程序获取输入设备数据。同样,对任意类型的输入设备都提供完全支持,其中包括力回馈控制器。

通过action映射,应用程序不需要知道具体使用的是什么类型的设备就可以获取输入数据。

DirectInput扩充的服务及改良的性能,对于游戏、模拟以及实时会话来说太棒了。

但对于使用键盘作文本输入或鼠标导航的应用程序来说,DirectInput不会提供更多优势。更多信息,可参照“Windows交互”。

从DirectInput开始

本节将应用DirectInput概述如何建立一个简单程序。

更多详细信息及示例,可参照“应用DirectInput及DirectInput C/C++教程”。

注意: 要了解DirectInput,就必须理解以下术语:

DirectInput对象:总的DirectInput接口

设备:键盘、鼠标、游戏杆及其他设备

DirectInputDevice对象:用来表示一个键盘、鼠标、游戏杆或其他输入设备

设备对象:用来表示DirectInput设备对象上的一个按键、按钮、触发器等等,也被称为设备对象实例。

可以通过以下步骤实现一个DirectInput的简单应用,使得该程序可以接管确定设备对象(按钮、轴(axes)等)数据项的工作:

创建DirectInput对象。使用该对象的方法来列举设备,并创建DirectInput设备对象。

列举设备。如果你只需要使用仅有的鼠标或键盘的话,该步可以跳过。如果需要确定系统中是否还有其他输入设备,就需要使用DirectInput进行列举。当DirectInput找到一个你所设置的条件的设备时,可以让你检查该设备的能力,同样也可以得到一个设备唯一标识,通过标识就可以创建该设备的设备对象。

创建你所要使用的设备的DirectInputDevice对象。这里你需要用到上一步中的标识符。对于系统鼠标或键盘来说,你可以使用一个标准的全局唯一标识(GUID)。

设置设备有关信息。对每一个设备来说,首先需要设置它的协作级别,也就是说该设备以什么样的方式同系统或其他应用程序共享;然后是用来标识数据包中设备对象的数据格式,如按钮或轴(axes);如果需要获取缓冲数据的话——也就是说,宁愿基于事件而不是状态——那么你还需要设置缓冲区大小。另外,在该步骤中,你可以获取设备的信息并因此可以设计应用程序的行为。最后你还可以设置某些属性值,如游戏杆轴的返回值的范围。

获得设备。该步告诉DirectInput设备已经准备好接收数据了。

获取数据。 每隔一定时间后,如一个消息循环或绘制循环后,可以得到每个设备的当前状态或者自从上次检测以来的事件记录。如果需要的话,只要发生事件,DirectInput就可以通知你。

根据数据进行相应操作。应用程序可以响应按钮、轴的状态,或者响应按键按下、释放时产生的事件。

关闭DirectInput。退出前,应用程序应该不再需要所有设备了,记得释放它们,然后再释放DirectInput对象。

以上不是实现DirectInput的唯一途径,为了利用今后各式各样的输入设备,可以向用户提供简单化的配置,而你可以使用操作映射(action mapping)。

要设置一个设备的操作映射,可以让DirectInput确定每个应用程序都使用什么设备对象。如,竞技类的游戏(racing game)中通常用y-轴控制调速,相反,你可以创建一个AXIS_THROTTLE操作,而让DirectInput把该操作委派给设备上最适合的轴上。当接到消息时,你需要通过联合的操作来鉴别它们,而不是设备对象。

更多信息,请参照操作映射。

原文:Introduction to DirectIput,DirectX SDK

© 2004 Microsoft Corporation. All rights reserved.

翻译:Room3rd@hotmail.com, 2004-11-27

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有