二D赛车游戏的设计与实现毕业设计.doc
《二D赛车游戏的设计与实现毕业设计.doc》由会员分享,可在线阅读,更多相关《二D赛车游戏的设计与实现毕业设计.doc(47页珍藏版)》请在三一文库上搜索。
1、2D 赛车游戏的设计与实现 摘摘 要要 随着电脑的普及,游戏已成为大多数年青人的主要休闲方式,赛车价格比较昂贵, 而赛车游戏则可以让那些想玩赛车却没法玩的人体验一把。爱好赛车竞速游戏的玩家 们以体验比赛中的刺激为乐趣,玩家唯一的真实目的就是 “最快”。 本设计所实现的赛车游戏是基于 C 语言设计开发的,所选用的游戏引擎是基于 Directx8.0 编写的。能进行赛车、赛道以及各种图片的绘制,实现各种游戏音效,获 取键盘输入,单人游戏时,可与电脑控制的赛车竞速,多人游戏时可与其他玩家或电 脑 AI 竞速。 与其他类似游戏相比,本设计所采用的碰撞检测算法,像边界矩形盒算法和颜色识 别算法,不仅速度
2、快,而且检测灵敏。多人游戏的实现是靠 socket 网络编程与多线 程的联用,socket 提供 C/S 模式下数据的可靠传输,多线程解决了 socket 等待问题, 两者结合使得在局域网内的多人游戏运行比较流畅。 关关键键词词:2D,DirectX,赛车,游戏 Abstract Design and Implementation of 2D Racing Game Abstract With the popularity of computer games has become a major leisure activity for most young people , cars are
3、 expensive , and racing games for those who want to play can play racing who had no opportunity to experience one. Hobby car racing game players to experience the game for fun stimulation , players only real purpose is the “ fastest .“ This design is realized racing game based on the C language desi
4、gn and development , the choice of the game engine is based on Directx8.0 written . Capable of racing, track and draw various pictures , sound effects to achieve a variety of games to get keyboard input, single- player game, with computer-controlled car racing , multiplayer games with other players
5、or computer AI racing . Compared with other similar games , collision detection algorithms used in the design , like the bounding rectangle box algorithm and color recognition algorithm , not only fast, but also detection sensitivity . Multiplayer is achieved by the socket network programming and mu
6、lti-threaded MS , socket provides reliable data transmission under C / S mode , multi-threaded socket waiting to solve the problem , a combination that makes the LAN multiplayer games run more smooth. Keywords : : 2D, DirectX, racing, game 计算机信息工程学院毕业设计说明书 I 目目 录录 第第一一章章 绪绪论论 . .1 1 1.1 研究背景及意义 1 1.
7、2 赛车游戏开发环境和语言 1 1.3 赛车游戏的主要功能 1 1.4 赛车游戏开发的主要步骤 2 第第二二章章 D DI IR RE EC CT TX X、游游戏戏引引擎擎和和游游戏戏结结构构 . .3 3 2.1 DIRECTX 概述 .3 2.2 游戏引擎 3 2.2.1 选用的游戏引擎结构 4 2.3 游戏结构 5 2.4 本章小结 6 第第三三章章 游游戏戏逻逻辑辑 . .8 8 3.1 游戏主逻辑 8 3.2 单人游戏逻辑 9 3.3 多人游戏逻辑 .13 3.3.1 多人游戏服务器端逻辑 .13 3.3.2 多人游戏客户端逻辑 .15 3.4 显示游戏胜利 .15 3.5 本章小
8、结 .16 第第四四章章 赛赛车车碰碰撞撞检检测测技技术术 . .1 17 7 4.1 边界矩形盒方法 .17 4.2 颜色识别算法 .19 4.3 本章小结 .24 第第五五章章 S SO OC CK KE ET T 网网络络通通信信实实现现多多人人游游戏戏 . .2 25 5 5.1 SOCKET简介 .25 5.1.1 什么是 Socket.25 计算机信息工程学院毕业设计说明书 II 5.1.2 Windows Socket 编程模型 25 5.1.3 游戏所使用的 Socket 模型 31 5.2 粘包问题 32 5.2.1 粘包出现的原因.32 5.2.2 粘包问题解决办法.33
9、5.2.3 关闭优化算法.34 5.3 多线程与 SOCKET组合实现多人游戏.34 5.3.1 多线程的使用.34 5.3.2 多线程与 socket 的联用36 5.4 本章小结 39 第第六六章章 游游戏戏调调试试及及运运行行 . .4 40 0 6.1 游戏程序的环境 40 6.2 游戏运行界面 .40 结结论论 . .4 42 2 致致谢谢 . .4 43 3 参参考考文文献献 . .4 44 4 计算机信息工程学院毕业设计说明书 1 第第一一章章 绪绪论论 1 1. .1 1 研研究究背背景景及及意意义义 游戏可以锻炼我们的大脑,提高大脑思维的敏捷性和灵活性,让我们暂时抛开自 己的
10、烦恼,缓解现实生活给予我们的压力。玩游戏可以让我们适当的放松,缓解精神 疲劳。 中国的游戏产业在多年里迅猛的发展。一开始主要依靠国外代理,而现在自主研 发的游戏已经占了大部分的市场份额,现在的游戏产业,在中国的经济发展中发挥着 不可替代的作用。 随着国际国内的游戏产业的发展,三维游戏逐渐成为游戏市场中的主要形式,但 2D 游戏因为自己的独特的优点并没有退出人们的视野,反而在网页游戏、娱乐休闲游 戏等领域快速的发展。和欧美、日韩游戏产业发展比较成熟的国家相比,中国的3D 技术并不成熟,很多游戏公司的精力主要放在技术方面的处理,想尽量模仿国外优秀 游戏的处理技术,而且 3D 游戏的投资比较大,只有
11、一小部分大型公司有实力进行开发。 与此相对的是,因为 2D 游戏的技术处理难度比较低,游戏公司不仅可以将精力放在技 术处理方面,还可以多花些精力在游戏策划方面,以丰富游戏的内容,它的整体开发 周期短,投入的资金少得多,这些优点使得 2D 游戏非常适合在中国发展。 从中国游戏玩家的反应来看, 3D 游戏的吸引力比 2D 游戏强的多,玩家都更加喜 欢画面质量优秀的游戏。大多数 2D 游戏通常比较轻松、休闲、操作难度低,并且对硬 件和系统没什么要求,非常适合那些喜欢休闲娱乐、交友的人。现在的 2D 游戏中也 利用不少的 3D 处理技术来优化游戏画面,如粒子系统、水波特效、爆炸特效等。所以, 中国的
12、2D 游戏还是有比较好的发展前途的,尤其是在手机游戏中,在电脑游戏里也不 会被取代,因此,2D 游戏的开发是我们值得关注和研究的问题。 1 1. .2 2 赛赛车车游游戏戏开开发发环环境境和和语语言言 本设计所用的语言是C语言实现的,软件使用的是 VC+6.0,还要Directx8.0。 DirectX是微软公司开发的基于Windows系统的多媒体编程接口,编写的语言是 C+,并且遵循COM。它可以提高在window平台运行的游戏或者多媒体程序的运行速度, 有很强的3D图像处理能力,并且支持2D3D图形加速。使得开发人员在创建 3D场景时 不需要考虑硬件的类型,只需要通过 Direct3D调用
13、设备接口就可以操作图形设备,简 化了游戏开发难度。 1 1. .3 3 赛赛车车游游戏戏的的主主要要功功能能 本设计可实现较真实的游戏音效、键盘接口、局域网内通信 等功能。所设计的游 戏可以进行两种类型的游戏即单人和多人游戏,游戏包括赛车创建、赛道载入、碰撞 检测、控制在跑赛车、赛车数据处理。单人游戏中有电脑控制的赛车可以与玩家进行 计算机信息工程学院毕业设计说明书 2 赛车,多人游戏是可以各自控制赛车,在不同的赛道上有不同的速度,第一个到终点 胜利。编译通过或找出查出的问题,进行最终调试,完成游戏。 1 1. .4 4 赛赛车车游游戏戏开开发发的的主主要要步步骤骤 本游戏利用现在比较常用的
14、Visual C+ 6.0 工具,基于 DirectX 8.0,用 C 语言 实现,进行系统的分析,从玩家的角度去思考,怎么实现开赛车时的快感与激情。 实现赛车的控制、赛道载入、碰撞检测、赛车数据处理和多人游戏 等。主要步骤 为: (1)设计并画游戏的场景; (2)设计界面; (3)游戏逻辑的设计与实现; (4)游戏功能模块设计与实现; (5)游戏测试; 计算机信息工程学院毕业设计说明书 3 第第二二章章 D Di ir re ec ct tX X、游游戏戏引引擎擎和和游游戏戏结结构构 DirectX 是 PC 平台上开发游戏的事实上的标准,而游戏引擎能使开发游戏的工作 量大大的减少,本毕业设
15、计所使用的游戏引擎是在 Directx8.0 上编写的。下面是 Directx8.0、游戏引擎的一些介绍。 2 2. .1 1 D Di ir re ec ct tX X 概概述述 Microsoft 公司的 DirectX 是一个多媒体应用编程接口,它实际上是一种软件系 统,抽象出音频、输入、视频、网络以及安装等内容,由 C+语言实现,遵循 COM(组件对象模型) 。你可以使用相同的代码,而不管计算机的具体硬件配置怎么样。 另外,DirectX 比 Windows 系统自带的 GDI 要快很多,而且系统更稳定。 DirectX 的主要组件有 DirectDraw、DirectGraphic、
16、DirectInput、DirectPlay、DirectMusic 和 DirectSound。不同的 API 负责完成 DirectX 内核中不同的功能。DirectX 中的每个 API 都可以通过硬件加速。这意味着只要是 DirectX 支持的硬件,都可以用程序访问 到,而不用关心它的具体实现。下面是它的主要组件和功能: DirectDraw:主要负责 2D 图像加速,所有图像的绘制都要用到它,因此它是十分 重要的。在 8.0 之后的版本已没有了。 DirectGraphic:主要负责向屏幕上渲染二维图形和三维图形。它实际是 DirectDraw 和 Direct3D 合并起来的。 Di
17、rectInput:它可以直接使用所有与计算机关联的输入设备。这些设备包括键盘、 鼠标、游戏控制杆、操作杆、空间定位球等设备。重要的是, DirectInput 可以和所 有现在的或将来的输入设备对话。 DirectPlay:可以通过因特网、调制解调器或直接连接来建立抽象的连接。 DirectMusic:支持 MIDI。 DirectSound:声音组件,支持数字化声音( WAV) ,但不支持 MIDI。 DirectX 目前已经发展到到 DirectX12,一开始,DirectX 1 很不成功,当到了 DirectX 8 时,它引发了显卡革命,引入像素渲染概念。 DirectX 11 增加了
18、新的计算 shader 技术,它允许 GPU 从事更多的计算工作,而不仅是 3D 运算,这可以将 GPU 作 为并行处理器使用。DirectX 11 还支持 tessellation 镶嵌化技术,这有助于开发人 员创建更为细腻流畅的模型,实现高质量实时渲染和预渲染场景。 DirectX 11 另外一 大亮点是可以更好地利用多线程资源,从而使游戏更有效地利用多核处理器。目前, 已更新到 DirectX12, 毫无疑问 DirectX 给游戏业带来了巨大的发展。 2 2. .2 2 游游戏戏引引擎擎 游戏引擎是游戏中与游戏具体实现无关的核心技术部分,可以说是游戏的心脏, 计算机信息工程学院毕业设计
19、说明书 4 而游戏的部分就是场景模型、角色模型、动画、声音等其他控制部分。经过几十年不 断的发展,现在的游戏引擎已经发展成一个由多个子系统共同构成的复杂系统。 游戏 引擎就是为了降低游戏开发者们重复劳动,节省开发时间和开发费用而诞生的,它封 装了很多在游戏制作中常用的功能,让我们能直接调用这些功能而不用再从头编写。 下面是游戏引擎主要的结构。 2 2. .2 2. .1 1 选选用用的的游游戏戏引引擎擎结结构构 毕业设计所设计的赛车游戏中所使用的的游戏引擎由 3 个库函数组成: T3DLIB1、T3DLIB2、T3DLIB3。 1、T3DLIB1:这是一个相当简单的二维 8/16 位色,并具有
20、后备缓冲的 Directx 引擎,支持任何分辨率,并且不在意是否为窗口模式。主要包含: (1)Direct 接口函数如: DDraw_Init(int width, int height, int bpp, int windowed=0):启动并初始 化 DirectDraw,可以选择任何分辨率和颜色色深, windowed 为 0 表示全屏,若想为 窗口模式,应置 1,并且不可选择分辨率和颜色深度。 DDraw_Shutdown(void):关闭 Directdraw 并释放所有接口。 DDraw_Attach_Clipper()给发送的表面关联一个裁剪器等等。 (2)2D 多边形函数 包含
21、点、线、多边形的绘制以及绘制 GDI 文字等。 (3)数学和误差函数 包含计算两点间的距离、打开误差文件等。 (4)位图函数 包括加载位图函数、释放位图函数、创建内存位图、绘制位图等 (5)调色板函数 这些函数只用于 256 色,即 8 位模式,包含读取调色板函数、更新调色板、保存 调色板等。 (6)实用工具函数 如 Get_Clock()、Start_Clock()等时间函数以及矩形碰撞检测和颜色检测函数。 (7)BOB 对象(类似精灵)及其处理函数 包含对 BOB 操作的各种函数。 2、T3DLIB2:输入系统。此系统比较简单主要功能如下: (1)初始化 DirectInput 系统。 (
22、2)设置并获取键盘、鼠标、游戏杆。 (3)从输入设备中读取数据。 (4)关闭设备。 计算机信息工程学院毕业设计说明书 5 3、T3DLIB3:声音控制。包含 DirectSound 和 DirectMusic: (1)DirectSound 实现.wav 格式的波形声音数据的播放控制 ,它的 API 封装功 能如下: DirectSound 的初始化及关闭。 用 11kHz、8 声道载入.WAV 文件。 播放加载的声音文件。 停止播放。 检测声音的播放状态。 改变音量、回放速率或立体声的声道平衡。 删除声音数据。 (2)DirectMusic 实现 MIDI 文件的播放控制,其 API 封装功
23、能如下: DirectMusic 的初始化及关闭。 加载 MIDI 文件。 播放 MIDI 文件。 停止正在播放的 MIDI 文件。 检测声音播放状态。 如果 DirectSound 已被初始化,则自动连接 DirectSound。 删除 MIDI。 2 2. .3 3 游游戏戏结结构构 所有的游戏本质上是一个持续不断的 while循环,它执行逻辑并在屏幕上不间断的 绘制更新图像,通常以3060帧每秒速度不断的绘制,本设计所实现的赛车游戏也是如 此,但图像是以30帧每秒的速度绘制。本设计所实现的赛车游戏流程如图 2-1,下面 是游戏的每个子流程的说明。 计算机信息工程学院毕业设计说明书 6 W
24、inMian() CreateWindow(); GameInit(); 主事件循环 Game_Shutdown(); GameInit() WinProc() Process Messages Game_mian() Game_Shutdown() Game_main() 输入 人工智能和逻辑 . 渲染 图2-1 游戏程序流程图 (1)Game_Init()初始化 在这一部分中,游戏执行初始化操作,此赛车游戏主要的初始化工作有对三角函 数、DirectDraw、DirectSound、DirectInput的初始化、键盘的初始化、声音的载入、 创建裁剪器、游戏开始画面载入与绘制、各个位图(包
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 赛车 游戏 设计 实现 毕业设计
链接地址:https://www.31doc.com/p-3313651.html