物理学——挑战:实现道路碰撞检测
2010-10-16 23:57
134 查看
如果前一章你觉得容易,现在将有点难。你的任务是查看CarPhysics类并弄懂如何相同的物理代码和碰撞检测是如何将车保持在赛道上,以及如何处理与护栏(不是一条直线)的碰撞。
要完成此项任务,最好是写一个单元测试,它绘制赛路,并让你以在TestCarPhysicsOnPlaneWithGuardRails单元测试中同样的方式控制汽车,以同样的方式处理游戏本身。但是,你也可以在CarPhysics类的Update方法设置断点来测试物理效果,然后通过步进代码看看变量是如何变化的。图13-16显示了这样一个单元测试。
![](http://www.xnadevelop.com/image.axd?picture=1_thumb_34.jpg)
Figure 13-16
如果你真的像扩展游戏并增加更多的功能,可以尝试改进物理效果甚至尝试实现一个物理引擎。至少在Windows平台上有可能改变游戏玩法,增加特效,并处理更复杂的碰撞情况。
一个小提示,如果你不知道在哪里寻找代码,或不知道赛道如何使用简单碰撞逻辑,请看看CarPhysics类UpdateCarMatrixAndCamera方法和Track类的GetTrackPositionMatrix方法。赛道矩阵将目前的道路片段转换为空间,以相同的方式使用汽车矩阵,两者在单元测试的平面碰撞检测中使用。
/*728*90文章内页广告*/ var cpro_id = 'u241919';
要完成此项任务,最好是写一个单元测试,它绘制赛路,并让你以在TestCarPhysicsOnPlaneWithGuardRails单元测试中同样的方式控制汽车,以同样的方式处理游戏本身。但是,你也可以在CarPhysics类的Update方法设置断点来测试物理效果,然后通过步进代码看看变量是如何变化的。图13-16显示了这样一个单元测试。
![](http://www.xnadevelop.com/image.axd?picture=1_thumb_34.jpg)
Figure 13-16
如果你真的像扩展游戏并增加更多的功能,可以尝试改进物理效果甚至尝试实现一个物理引擎。至少在Windows平台上有可能改变游戏玩法,增加特效,并处理更复杂的碰撞情况。
一个小提示,如果你不知道在哪里寻找代码,或不知道赛道如何使用简单碰撞逻辑,请看看CarPhysics类UpdateCarMatrixAndCamera方法和Track类的GetTrackPositionMatrix方法。赛道矩阵将目前的道路片段转换为空间,以相同的方式使用汽车矩阵,两者在单元测试的平面碰撞检测中使用。
/*728*90文章内页广告*/ var cpro_id = 'u241919';
相关文章推荐
- 游戏里实现碰撞检测方法
- Unity实现简单的碰撞检测
- 游戏里实现碰撞检测方法
- 学习 "使用cocos2d-x3.0和物理引擎实现碰撞检测" 中出现的一个问题
- Cocos2d-x3.2中 碰撞检测的实现
- Java编程实现游戏中的简单碰撞检测功能示例
- iOS实现浮动泡泡功能,悬浮泡泡,windows系统屏幕保护程序的气泡功能(碰撞检测)
- js实现碰撞检测特效代码分享
- js实现碰撞检测特效代码分享
- Cocos2d-x 3.2 lua飞机大战开发实例(二)敌机类的封装,以及碰撞检测的实现
- cocos2d滑动碰撞检测的实现
- Ogre1.8.1射线实现碰撞检测例子源代码
- J2ME中的自己实现碰撞检测
- 游戏里实现碰撞检测方法
- 游戏里实现碰撞检测方法
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- android 3D 游戏实现之简单碰撞检测
- 游戏里实现碰撞检测方法
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- 游戏里实现碰撞检测方法