探索XNA框架:从游戏循环到简单太空射击游戏开发
1. 游戏开发基础概念
在游戏开发中,开发者常利用一些数值进行与游戏相关的计算。例如,计算手榴弹在抛出后何时爆炸。要知道,游戏、视频和电影等都是通过欺骗人眼,使其相信看到的是连续运动。一般来说,当帧率达到30fps时,人眼才不会察觉到画面的不连续性。
游戏循环主要有两种类型,它们会影响开发者对用户运动感知的管理。下面为你详细介绍这两种游戏循环:
| 游戏循环类型 | 特点 | 帧率情况 |
| — | — | — |
| 固定步长游戏循环(Fixed - Step Game Loop) | 尝试以固定间隔调用Update方法,为开发者在绘制场景前提供固定的计算时间。这是XNA框架的默认游戏循环。 | 对于Xbox和Windows,默认帧率为60fps,即每1/60秒调用一次Update方法;对于Windows Phone,固定步长游戏的默认帧率为1/30秒,与硬件屏幕刷新率一致,更高帧率视觉上提升不大,但会增加电池消耗。 |
| 可变步长游戏循环(Variable - Step Game Loop) | Update和Draw方法会持续调用,不考虑TargetElapsedTime属性的值,从而产生可变帧率。 | 由于屏幕刷新率固定为30fps,使用可变步长循环可能收益不大,还可能影响电池性能。 |
2. 实现简单太空射击游戏
现在,我们利用创建HelloXNA项目时生成的默认游戏循环代码,来开发一个简单的太空射击游戏。游戏设定为俯视视角,外星飞船会攻击英雄飞船,英雄飞船可发射导弹使外星飞船爆炸,得分取决于炸毁的外星飞船数量。
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



