将DirectInput封装为基本的输入系统

来源:互联网 发布:中国气象数据网下载 编辑:程序博客网 时间:2024/05/16 12:49

DirectInput封装为基本的输入系统

作者:蒋轶民  创作于2011281:07:15

了解DirectInput的即时数据和缓冲数据后,我们开始着手制作一个简单的基于DirectInput的输入系统了。

       我制作这样一个系统的思路是这样的:将那些琐碎的步骤全都封装在我自己写的一个类CInputSystem中。这个类是基于DirectX库的,主要提供键盘的处理。通过这个类,我们可以简单地控制键盘,并且提供了即时数据和缓冲数据。

       对于错误处理,我并没有使用c++try-catch异常处理机制,而是使用了错误码。错误码对于简单的系统来说应该是很有效的,虽然在自己游戏的进程中可能会引起一些小麻烦,但是在最初的实验还是挺管用的,以后我还会修正充实。

       在最初,我设计了这样的一个类:添加简单的默认构造函数和析构函数,然后制作了一个Initialize()函数,初始化了各项数据。这样就封装了细节,大大简化了我们的操作。另外我还提供了更新系统UpdateSystem()函数和检测按键按下的KeyDown()函数。另外我还提供了转化输入种类的ShiftInputStyle()函数。

 

UpdateSystem()函数和KeyDown()函数声明为内联函数,可以提升程序的运行效率。

       下面就是我的InputSystem.h文件:

我们这样调用:

通过测试,成功,并且效果不错。以下就是我的截图,通过按下B键可以转换为缓冲数据,按下I键可以转换为即时数据。缓冲数据和即时数据的差别是很大的,我们可以通过截图来证实。

好啦,把基本输入系统做好了,接下来就可以进行我的数据存储和读取系统了,这是我上个学期落下的工程,现在一定要完成!

源代码和说明文档请点这里->http://download.csdn.net/source/3016618

原创粉丝点击