设计多人分组对战俄罗斯方块的研究与实现.doc
《设计多人分组对战俄罗斯方块的研究与实现.doc》由会员分享,可在线阅读,更多相关《设计多人分组对战俄罗斯方块的研究与实现.doc(56页珍藏版)》请在沃文网上搜索。
1、摘 要俄罗斯方块游戏是一种比较经典的游戏,研究它具有一定的价值和意义。但目前的俄罗斯方块多以单机版为主,游戏交互性弱、可玩性差,存在很大的弊端。利用网络通信技术、图形界面、多媒体等技术可以支持多人分组对战,提高游戏的可玩性,弥补传统俄罗斯方块的不足。本文在分析研究传统俄罗斯方块的基础上,借助C/S软件模型,将CSocket套接字技术移植到俄罗斯方块中实现了多人分组对战模式。将传统的人机对战变成人与人对战,增强了游戏的交互性。利用GDI图形界面绘制技术和多媒体技术使游戏画面变得更加生动,并且动态显示各游戏玩家的游戏进展情况,改善了玩家的视觉、听觉感受。游戏中的各个玩家通过自定义消息来进行交互,他
2、们可以组队进行游戏,可分为自由人、蓝队、橙队和红队。各玩家之间除了可以相互聊天外,还可以相互攻击和援助。实验表明,经过扩展后的俄罗斯方块游戏画面更加活泼,游戏方式更加灵活,游戏的交互性更强,游戏可玩性大大提高。关键词:多人分组对战俄罗斯方块;CSocket技术;GDI图形绘制;多媒体技术 ABSTRACT Tetris game is a classic game .It is valuable to research. But current games are mainly single plane version, lack of interaction, and can not be
3、played easily. By using network communication technology, graphical interface, multimedia and other technology, the game introduced in this paper can support group antagonizing, be more easily played and make up the shortcomings of traditional versions. Based on the analysis of traditional versions,
4、 CSocket is transplanted to the game to achieve groups antagonizing mode, which changes the traditional man-machine model into man-man model and enhance the interaction in the game. GDI and multimedia technologies make the game more lively, display the progress of every player dynamically and improv
5、e the visual and auditory experience. The various players interact by customizing the information in the game. They can team up for the game. There are free man, blue team, red team and orange team. Not only can they chat with each other, but also attack and help each other.The experiments show that
6、 the expansion can make the game more lively, make it more flexible in playing the game, make the game more interactive and enable the game to be played more easily.Keywords: Tetris of more groups antagonizing; CSocket; GDI graphics rendering; Multimedia technology目 录1 绪论11.1 俄罗斯方块游戏简介11.2 多人分组对战俄罗斯
7、方块与传统俄罗斯方块的异同21.3 本论文的主要内容与组织结构32 多人分组对战俄罗斯方块的分析与设计42.1 多人分组对战俄罗斯方块的设计原理42.2 需求分析82.2.1 数据流图92.2.2 数据字典112.3 概要设计122.3.1 功能定义122.3.2 游戏框架设计142.3.3 技术、风险预测153 详细设计173.1 系统组成及功能描述173.2 系统登录模块设计173.3 游戏算法实现模块193.4 网络通信模块233.5 游戏界面绘制模块253.5.1 游戏初始界面253.5.2 游戏准备界面273.5.3 游戏开始界面283.5.4 游戏结束界面324 多人分组对战俄罗斯
8、方块的实现364.1 多人分组对战俄罗斯方块的实现原理364.2 多人分组对战俄罗斯方块核心功能实现375 系统测试与维护405.1 软件测试概述405.2 多人分组对战俄罗斯方块测试405.2.1 登录阶段测试405.2.2 游戏开始前的准备阶段测试415.2.3 游戏进行阶段测试425.2.4 游戏结束阶段测试42结论43参考文献44英文原文45中文译文50致 谢53中国矿业大学2008届本科生毕业设计 第 53 页1 绪论1.1 俄罗斯方块游戏简介 “俄罗斯方块”由莫斯科科学学院程序员Alexei Pajitnov所设计。1985年6月工作于莫斯科科学计算机中心的阿列克谢帕基特诺夫在玩过
9、一个拼图游戏之后受到启发,从而制作了一个以Electronica 60(一种计算机)为平台的俄罗斯方块的游戏。后来经瓦丁格拉西莫夫(Vadim Gerasimov)移植到PC上,并且在莫斯科的电脑界传播。实际上,在游戏发明后的数年间,“俄罗斯方块”成了无数场专利官司和法律纠纷的目标,而许多公司也不遗余力地上阵厮杀,想要将游戏的创意据为己有。一个最初的版本是Spectrum Holobyte为IBM兼容机开发的游戏。1988年,“俄罗斯方块”在街机上也变得非常流行,这都要归功于Atari,因为他们发布了一个能让两名玩家同时游戏的版本。 还是在1988年,Tengen为任天堂娱乐系统发布了“俄罗斯
10、方块”的一个优秀版本,但它很快便从货架上撤掉了,因为任天堂指控该公司侵犯版权。后来,任天堂把那个版本的“俄罗斯方块”换成了自己的版本,可是新版本却缺乏Tengen版的双人对打模式和出色的音乐。到了1989年,任天堂着手将一个移动版本的“俄罗斯方块”与当时崭新的GBA系统捆绑出售。GBA后来成为有史以来销售成绩最佳的游戏系统,对此,“俄罗斯方块”作出了不小的贡献。 这次产权争夺,几家欢喜,几家哀愁,几家公司倒闭,几家公司赚钱,其中的是是非非,一言难尽。目前“俄罗斯方块”游戏已经有了很大的发展。国内从以前的掌上游戏移植到了电脑、手机等平台。游戏的画面、功能都有了很大的提高。例如有名的QQ游戏中的“
11、火拼俄罗斯方块”、边锋游戏大厅中的“俄罗斯方块”等。国外“俄罗斯方块游戏”也有很大发展。电脑上、手机上、PSP上、各种网站上都有它的身影。“俄罗斯方块”游戏从诞生到现在已经几十年了,它一直伴随着我们,一直在不断的成长。没有人认为它会消失,将来它也会不断的发展下去。随着高科技电子产品的不断涌现,“俄罗斯方块”将以他们为载体继续随时间洪流传播到世界的每一个角落。“俄罗斯方块”不仅会扩大传播介质,同时自身的功能的多样化、界面的美化、操作的简化、特效、魔法等技术都会在将来得到很大的发展。例如可以将游戏地图变成各种各样的形状而不再是单一的矩形地图;还可以改变游戏时运动方块的形状;也可以增加键盘鼠标事件并
12、以特殊的功能去响应这样的事件(例如连续点击鼠标时可以使运动方块发射子弹等)。“俄罗斯方块游戏”早在十几年前它就风靡全球,成为大家津津乐道的话题。从掌上游戏机到PC机,从单调的黑白画面到绚丽多彩的QQ游戏画面。“俄罗斯方块”始终跟随着人们一起发展、进步。许多游戏轰轰烈烈的诞生没多久就悄然而去,然而“俄罗斯方块”却长久不衰,仿佛它已经成为了我们的一部分,将永远伴随着我们去开辟未来,带给我们更多的欢笑。“俄罗斯方块”是一款集休闲、娱乐、益智于一体的游戏,适合各种人群。它的实现方法简单,但灵活多变,通过研究“俄罗斯方块”,在原来的技术上演变出更多、更新的版本也是一件很有意义的事情。同时,由于“俄罗斯方
13、块”的广泛传播也带来了很大的商业价值。怎样开发出更新、更吸引人的“俄罗斯方块”游戏也成为许多游戏公司的首要任务。1.2 多人分组对战俄罗斯方块与传统俄罗斯方块的异同多人分组对战俄罗斯方块是传统单机版俄罗斯方块的扩展,因此,它们具有许多相似之处。同时,多人分组对战俄罗斯方块游戏的设计原理又有了很大的改变,游戏方式也不再相同,它们也有许多不同的地方。(1) 相同点:1) 游戏算法相同:多人分组对战俄罗斯方块与传统俄罗斯方块主要的相同点在游戏算法上。经过长时间的发展,俄罗斯方块游戏的算法已经发展成熟,因此本文并没有作多大的改变。游戏算法主要由运动方块的随机产生、方块下移、左移、右移、直接下落、变换、
14、方块触界检测、消层等多个模块组成。它们的实现原理基本相同。2) 游戏逻辑相同:游戏从运动方块的产生、消层到游戏结束,整过流程是相同的。(2) 异同点:1) 设计模式不同:传统俄罗斯方块游戏多是单机版,只能供一个人游玩;而多人分组对战俄罗斯方块是基于C/S的设计模式,支持网络互联,可以多人游玩。2) 对战模式不同:传统俄罗斯方块游戏是人机对战,缺乏交互性;而多人分组对战俄罗斯方块是多人分组对站。即最多六个玩家可以以自由人、澄队、蓝队、红队四种身份进行游戏。3) 游戏交互程度不同:传统俄罗斯方块主要是人机交互,形式比较单调,且交互较少;而多人分组对战俄罗斯方块游戏主要是人与人的交互,且交互形式多样
15、,比较灵活。例如玩家之间可以相互聊天等。4) 游戏的趣味性不同:传统俄罗斯方块游戏游戏方式较单一,趣味性较低;而多人分组对战俄罗斯方块中每个玩家都可以看见其他玩家的游戏进行情况,对手较多,且还有敌友之分,游戏中可以获得道具,并使用道具对敌方进行攻击,对盟友或自己进行援助,再加上游戏音效。使游戏玩家始终感觉到他不是一个人在游戏,而是身处一个团队中共同游戏,这样使游戏趣味性大大增加。5) 游戏结束方式不同:传统俄罗斯方块游戏没有游戏胜负之分,以方块到达游戏区域顶端为游戏结束,以游戏消层数量来计算游戏得分;而多人分组对战俄罗斯方块以方块到达游戏区域顶端作为本游戏玩家游戏结束的标志,但并不作为游戏胜负
16、的依据。游戏以最终存活下来的一个分组作为游戏的胜利方,其他玩家作为游戏失败方。且游戏得分不以消层数量为计算依据,而是以游戏名次来计算。并且游戏结束后会将游戏结果写入数据库,并重新显示玩家的游戏基础信息。总之,多人分组对战俄罗斯方块游戏和传统俄罗斯方块游戏相比有了很大的进步,提高了游戏方式的多样化,增加了游戏的趣味性,使游戏具有了更大的可玩性。1.3 本论文的主要内容与组织结构本文主要介绍了利用CSocket、GDI、多媒体技术对传统俄罗斯方块进行扩展,形成多人分组对战俄罗斯方块的具体原理和方法。全文主要分为五部分。第一章为绪论,简单介绍了俄罗斯方块的起源及发展历程,比较了传统俄罗斯方块与多人分
17、组对战俄罗斯方块的异同,明确了研究俄罗斯方块的意义和方向。指出了本文所要做的工作。第二章介绍了多人分组对战俄罗斯方块的设计原理,包括实现需要的技术介绍。在对设计原理进行分析的基础上,初步设计了多人分组对战俄罗斯方块游戏系统需求分析、功能定义、游戏框架等,并对系统开发中需要的技术和可能承担的风险进行预测。第三章是全文最主要的部分,主要介绍了多人分组对战俄罗斯方块游戏的实现过程。本章分为五个小节,第一小节是对整个系统功能的概述,其余四小节分别从四个模块对游戏的实现进行了分析介绍。全章以模块化分析的方式系统的阐明了该系统的组成及实现过程。第四章、第五章是在系统各功能设计已经完成的基础上,对游戏系统的
18、集成和测试。介绍了游戏的工作流程和游戏运行阶段的维护。最后,总结了本次毕业设计的主要内容和成果。全文从俄罗斯方块的历史介绍到多人分组对战俄罗斯方块的实现阐述,从游戏系统的功能设计到系统集成测试,由浅入深,循序渐进的阐明了整个系统的设计原理和实现过程。2 多人分组对战俄罗斯方块的分析与设计2.1 多人分组对战俄罗斯方块的设计原理 多人对战俄罗斯方块游戏的设计是单机版俄罗斯方块游戏设计的扩展,在原来的基础上加入网络互联,使原来的人机交互模式变成了人人交互模式。也就是说俄罗斯方块游戏本身的算法没有多大的变化,只是在其中融入了一些新的技术和新的游戏理念。如图形界面、多媒体、多人分组等设计思想。多人分组
19、对战俄罗斯方块游戏与单机版俄罗斯方块游戏有很大的区别,它们的模型如图2-1所示。 图2-1 单机版俄罗斯方块游戏模型图而多人分组对战俄罗斯方块游戏模型如图2-2所示。图2-2 多人分组对战俄罗斯方块游戏模型图从图2-1、2-2中可以看出两种游戏模型有较大的差异,多人对战俄罗斯方块更加多样化。单机版俄罗斯方块游戏注重人机交互,而对人对战俄罗斯方块游戏注重人与人的交互。多人分组对战俄罗斯方块游戏仍然设计为C/S模型【3】。服务器端主要功能是接受客户端的连接,接收并处理客户端发来的消息,将处理结果反馈给各客户端。客户端是游戏的主系统,玩家首先通过登录系统进入游戏界面,通过各种操作完成游戏开始前的准备
20、工作。当所有玩家都准备就绪后进入游戏,此时玩家操作键盘来完成游戏。游戏游玩的原理如图2-3所示。图2-3 多人分组对战俄罗斯方块游戏原理图游玩游戏需要经历以下步骤:(1) 在游戏服务器已经建立的情况下,运行客户端进入游戏登录直系统。输入服务器地址、用户帐号、用户密码,进入系统认证状态。登录模块从数据库中提取用户信息(ID、昵称、密码、等级、积分、登录标志等)进行验证【2】。验证通过则进入游戏主系统,否则返回初始登录界面。需要技术:ADO远程连接数据库、身份验证【1】。实现原理:在SQL2000上装上SP4的补丁,利用成熟的ADO数据库连接技术,封装ADO连接类,实现数据库的连接;封装CUser
21、类实现数据库中userinfo数据表的读写,根据玩家输入信息从数据库读取相应内容完成身份认证。(2) 通过身份认证后,进入游戏主系统,游戏根据玩家输入的服务器地址连接到服务器。连接成功则初始化游戏界面,进入游戏准备状态,否则返回到游戏登录初始界面或退出游戏。需要技术:CSocket套接字技术【9】。实现原理:套接字(socket)是一种网络编程接口,它是对通信端点的一种抽象,提供了一个发送和接收数据的机制。套接字技术最先应用于unix系统,后来移植到windows系统,有了Winsock API。经过对Winsock API的低层封装产生了CAsyncSocket类,经过高层次的封装产生了CS
22、ocket类。 CSocket进行通信的过程很简单。服务器首先启动,通过调用socket函数建立一个套接口,然后调用bind函数将该套接口和本地网络地址联系在一起,再调用listen函数使套接口做好侦听的准备,并规定它的请求队列的长度,之后就调用accept函数来接收连接。客户端在建立套接口之后就可调用connect函数来发送和接收数据。最后,待数据传送结束后,双方调用close函数关闭套接口【7】。它的原理如图2-4所示。图2-4 Winsock通信原理图CSocket通信技术类似,通过编写ServerSocket类,并重载了OnAccept()函数实现服务器套接口的监听。编写ClientS
23、ocket类,并重载OnReceive()实现客户端数据的接收【6】。(3) 服务器连接成功后,将显示游戏的初始界面。初始界面将根据玩家在数据库保存的游戏基础信息来显示。同时登录成功时,客户端将向服务器发送新玩家进入游戏的消息,而服务起得到这个消息后经过处理,再将处理结果发给其他的游戏玩家,这样其他的游戏玩家就能看见有游戏玩家进入游戏。此后,玩家可以操作游戏界面元素完成游戏开始前的准备。例如玩家可以选择分组、发送聊天、点击开始按钮准备就绪等。同样,这些事件都将以消息的方式发送给服务器,服务器经过处理后,将结果发往目标玩家,目标玩家就会了解到自己的游戏情况。需要技术:GDI绘图技术【5】、多缓冲
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 分组 俄罗斯方块 研究 实现
