第3章内容相对简单些,就是通过键盘上的输入来控制上一章坦克的移动,《はじめての3Dゲーム》作者介绍了2种方式实现的案例,第1种就是通过Window自身的消息循环机制和回调函数来处理,第2种就是通过DirectInput实时处理,效果比第1种好很多。 代码大部分跟上一章内容很相似,就截取一部分不相同的内容。上一章作者为了简化代码和可读性,省去了释放资源这一步,所以上一章的书本代码其实有内存泄漏的,本人改过的代码是没有这个问题的,释放资源的代码都是在FreeDx函数中,也是这章加上的代码。 第1种方法很简单,就几行代码,不需要多做解释,第2种方法之前在[DirectX]Programming.Role.Playing.Games:03_Input中也有简单介绍,也不细讲了,之前手柄设备的坑也查出问题并解决了。是一个参数的问题,将DI8DEVTYPE_JOYSTICK改成DI8DEVCLASS_GAMECTRL就OK了。 错误代码: 正确代码: Chapter3-01源码: Chapter3-02源码: 自己修改后的代码: Chapter3-01: Chapter3-02: 源码下载:下载地址 (责任编辑:蚂蚁团队) |