3D赛车游戏的设计与实现 - 图文(4)

2019-04-02 12:23

湖南大学毕业论文 第9页

图2-4 游戏控制台的控制流程

2.4本章小结

本章主要介绍了DirectX和游戏引擎,让我们了解两者的大概功能和关系。在了解两者的基础上,着重介绍了该游戏选用的游戏引擎的各个功能模块及各模块是如何协同工作的,为接下来的游戏制作打下了坚实的基础。最后介绍了下游戏的基本结构,一个游戏本质上是一个持续不断的while循环,它执行逻辑,并根据逻辑计算出下一帧图像,并在屏幕上不间断的绘制更新图像。游戏最终表现出来的就是一帧又一帧连续的画面,我们所要作的就是在循环中,不断的获取用户的输

湖南大学毕业论文 第10页

入,根据输入执行游戏逻辑,生成下一个游戏动画帧,最后渲染该动画帧。

湖南大学毕业论文 第11页

3游戏的汽车类模块、场景渲染、输入控制 3.1输入检测和响应

每个交互式程序都要为用户提供一些与其交互的方法。在视频游戏中,通常可以通过诸如游戏垫、方向盘、操纵杆、键盘和鼠标等这类输入设备实现。输入检测不仅要和大量设备打交道,还要能够对于具有速度高要求的视频游戏做出快速反应。在Windows操作系统中,输入可以通过DirectInput API汇总到一起。DirectInput是DirectX API的一部分,负责对所有连接到机器上的设备进行输入检测。

从对Win32 API编程的分析可以知道,键盘或鼠标的用户输入消息并不是直接传递给应用程序来处理的,面是是转发回Windows操作系统,最后由Windows回调应用程序的窗口过程函数进行相应的消息代码处理。显然,如果游戏程序仍采用这种方式来处理用户的输入将不会获得理想的执行效率。

DirectInput是DirectX 的一个组件接口,提供了大量的接口函数处理用户在键盘、鼠标、游戏杆以及力回馈等游戏装置上的输入,而且DirectInput是直接与硬件驱动程序打交道,因此DirectInput可较快地处理用户的输入。另一方面,正是由于DirectInput直接与驱动程序进行通信,所以在控制面板上所做的任何键盘和鼠标的属性设置,如键盘按键的延迟重复和鼠标的左右手习惯等,都不会对应用DirectInput的程序起作用,除非是修改同驱动程序提供的属性设置。

湖南大学毕业论文 第12页

游戏引擎封装了DirectInput,我们只用初始化游戏引擎的输入控制类,调用该类的函数IsKeyPress()判断哪个键位被敲击,即可响应该键位的事件。 3.2场景渲染

在现实的许多商业游戏中,场景十分复杂,有着逼真的天空、高低起伏且十分精细的地形、各种天气效果(雨、雾等)以及光照阴影等。我们的游戏场景是个简单的,只由天空,模型(该模型包含了地形)和光照组成的,这些组成部分涉及到了许多技术。 3.2.1天空盒技术

在虚拟现实和视景仿真应用系统中,天空仿真是必不可少的内容之一。天空背景的真实感对用户来说能大大提高视觉享受和沉浸感。所以,一个活动的、完整的天空是整个虚拟三维系统真实感体现所必须具备的。本文所实现的游戏的天空采用的就是天空盒技术,只要使用好的纹理,就能实现令人信服的画面。天空盒只不过是一个6个面正方形,中心就是视点。上下左右前后分别贴上天空纹理后,基本天空盒就制作完成。如图3-1~3-6。

湖南大学毕业论文 第13页

图3-1 front 图3-2 back

图3-3 left

图3-4 right 图3-5 top

图3-6 bottom

渲染的后的天空效果如图3-7所示。

需要注意的是玩家在场景中不停的漫游,而天空的大小是有限,我们可以采用一种简单方法来让玩家走不出天空盒的范围,每次渲染时我们始终让摄像机的坐标位于天空盒的中心,这样就可以给我们一种感觉,天空是无限大的,怎么走也走不出。最后是渲染天空盒,我们的天空盒是有大小的,所以我们渲染时禁止Z缓冲写入,否则渲染时,天空盒Z大小都写了进去,导致超出天空盒大小的场景渲染不了,而且还要最先渲染,否则因为你禁止Z缓冲写入,先渲染场景再渲染天空盒,天空盒把整个场景覆盖了。


3D赛车游戏的设计与实现 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学英语1复习资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: