基于Ne的俄罗斯方块游戏设计与实现.doc
《基于Ne的俄罗斯方块游戏设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Ne的俄罗斯方块游戏设计与实现.doc(37页珍藏版)》请在沃文网上搜索。
1、湖南大学毕业设计(论文)第 IV 页 基于.Net的俄罗斯方块游戏设计与实现摘 要俄罗斯方块游戏,从俄罗斯人阿莱克斯帕伊特诺夫在八十年代末制作成功以来,以其规则简单,容易上手,游戏过程变化无穷,且能在娱乐中益智等特点,它已经成为一个家喻户晓老少皆宜的大众游戏。我设计的这款俄罗斯方块游戏,具有丰富的游戏操作功能,用户可以根据自己的操作水平和喜好进行相应的游戏操作设置,从而不仅使游戏初学者也能从中享受到成功的快乐,既便高水平的玩家也能品尝到挑战的刺激。游戏还可以保存前十名高分信息,让用户有不断挑战新高度的乐趣。该游戏在Visual Studio2005环境中使用C#开发实现。C#是基于面对象的开发
2、设计的编程语言,面向对象的开发在近年已广为普及,成为软件开发最基本的方法。Visual Studio2005作为当前功能最为强大的可视化集成开发环境,它不仅支持传统的软件开发方法,更重要的是它能支持可视化的开发风格。同时它还提供了相当优秀的代码编辑、调试、向导、编译和可视化资源编辑等功能,这些强大的功能使它成为当今世界最好的系统开发工具之一。关键字:俄罗斯方块,面向对象的开发,集成开发环境The Design and Implement of Tetris Based on .net AbstractIn the 1980s, a Russian named Alex Pajitnov des
3、igned and developed the Tetris game. After that the Tetris game has become a well-known and all ages game because of its simple roles, easy controlling and changeable gaming process.The Tetris game that I designed allows you to play the game in your own way. Players can change the configuration of c
4、ontroller by themselves, so not only beginners can enjoy the game, but some high level players also can challenge themselves. Besides all above, the game can save the top ten scores, and this function can inspire players to reach higher peak.The game is developed in C# with Microsoft Visual Studio 2
5、005.C# is a programming language based on OOP. The OOP has been well-known to all these years and it has been a basic software programming method now. As the strongest IDE, the Microsoft Visual Studio 2005 supports classic developing method and visual developing as well. As the same time, it supplie
6、s many functions such as outstanding code editor, debugger, Wizard, compiler, visual resource editor and so on. All these strong function make this tool the best one in the world.Key words: Tetris, OOP, IDE目 录1 绪论11.1 课题背景及目的11.2 国内外研究状况11.3 课题研究方法21.4 论文构成及研究内容22 技术原理32.1 编程语言32.2 面向对象32.3 GDI+62.4
7、 .net Framework 2.072.5 DirectSound组件82.6 配置文件92.7 XML语言92.8 多线程103 系统设计123.1 系统设计思想123.2 运用的控件和主要对象133.3 主要实现的功能134 系统实现144.1 屏幕信息初始化144.2 方块的实现154.3 键盘输入事件处理154.4 方块的移动184.5 方块的变换204.6 游戏速度与自动下降214.7 满行判断及消行234.8 声音播放254.9 游戏结束判断及处理254.10 游戏设置254.11 分数保存26小结27致谢28参考文献29附录A31附录B32湖南大学毕业设计(论文)第 33 页
8、1 绪论1.1 课题背景及目的俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单但却变化无穷,令人着迷。相信大多数人都还记得为它的规则简单,容易上手,且游戏过程变化无穷。而在“联众俄罗斯方块”中,游戏人既能感受到游戏中的乐趣,也能提供一个展现自己高超技艺的场所。究其历史,俄罗斯方块最早还是出现在PC机上。无数人进入游戏编程的世界都是从编写俄罗斯方块游戏开始的,因为这是检验一个人对开发语言、环境和基本数据结构知识熟练程度的便捷途径。Microsoft Visual
9、 Studio提供了开发Window应用程序的最迅速,最简捷的方法。不论是Windows 应用程序的资深专业开发人员还是初学者,Microsoft Visual Studio都为他们提供了整套的工具,以方便开发应用程序1。本课题的目的是在实现俄罗斯方块基本游戏的前提下,优化其算法与数据结构,并增加一些传统游戏中没有的新特点,最终实现一款小巧精致的益智俄罗斯方块游戏。本课题要求在.net平台下采用C#实现,图形使用GDI,并增添一些传统游戏未有的新特点,如在变换部件块的方位时同时改变其颜色,在游戏中可动态调整游戏的速度,在削去单行及多行时提供不同的音乐提示等。通过对本课题设计的实现,能提高对数据
10、结构与算法的认识,熟悉.net开发环境的使用,并且能提高对一些组件比如winmm与DirectSound中的接口的了解。1.2 国内外研究状况俄罗斯方块红遍世界的各个角落,一个本来是吃大锅饭的人在消极怠工的时候发明的娱乐工具成了造福全人类的宝贝,它的价值远远超越了开发时候的预想。这是一个算法实现比较简单,但又乐趣无穷的游戏。课题用C#实现,这是一种基于面向对象开发方法的编程语言。面向对象的方法正受到全世界越来越强烈的关注和高度重视,针对日趋复杂的软件需求,业界也越来越崇尚利用面向对象的方法和思想进行软件开发2。1.3 课题研究方法俄罗斯方块诞生到现在已经超过20年,无数人都曾设计并实现过自己的
11、俄罗斯方块。本课题完全按照课题要求实现,在保持原有俄罗斯方块规则不变的前提下,尽可能的提高游戏的乐趣。比如可调节的速度,可变化的颜色,多种不同的音效提示,可保存分数等等。本设计在.net平台下采用C#实现,图形使用GDI。游戏区域所选择的控件为PictureBox,而当选择Panel或者其他控件时,重画会有明显的拖慢。游戏的音效与音乐用两种不同的方式实现,音效使用DirectSound,音乐则使用到winmm这个组件,因为在尝试使用同一种方式同时播放两种声音时,出现了不能同时播放的问题,因此用这个办法来解决。在游戏存储方面,对于游戏分数的记录使用了XML文档进行存储,而对于用户配置的存储,使用
12、到了配置文件。1.4 论文构成及研究内容第二章介绍了该设计实现过程中所使用到的技术原理,这些是此课题实现的基本理论。第三章粗略的描述了课题的设计,这其中描述了课题的功能以及对这些功能的分析等。第四章详细描述了课题各个功能的具体设计思想与具体实现的过程。2 技术原理2.1 编程语言C#是一种编程语言,它是为生成在 .NET Framework 上运行的多种应用程序而设计的。C# 简单、功能强大、类型安全,而且是面向对象的3。C# 凭借它的许多创新,在保持 C 样式语言的表示形式和优美的同时,实现了应用程序的快速开发。Visual Studio 支持C#,这是通过功能齐全的代码编辑器、项目模板、设
13、计器、代码向导、功能强大且易于使用的调试器以及其他工具实现的。通过 .NET Framework 类库,可以访问多种操作系统服务和其他有用的精心设计的类,这些类可显著加快开发速度与减少开发周期4。2.2 面向对象面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域5。面向对象的基本概念:1. 对象。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。2. 对象的状态和行为。对象具有状态,一个对象用数据值来描
14、述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中3. 类。具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象6。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。4. 类的结构。在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般-具体结构关系,整体-部分结构关系。(1) 一般具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。(2)
15、整体部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。5. 消息和方法。对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。面向对象的特征:1. 对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。2. 分类性。分类性是指将具有一致的
16、数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。3. 继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在软件开
17、发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。4. 多态性(多形性)多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息7。多态性增强了软件的灵活性和重用性。面向对象的要素:1. 抽象。抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象
18、的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。类实现了对象的数据(即状态)和行为的抽象。2. 封装性(信息隐藏)。封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。对象是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。3. 共享性面向对象技术在不同级别上促进了共享同一类中的共享。同一类中的对象有着相同数据结构。这些对象之间是结构、行为特征的共享关系。在同一应用中共享。在同一应用的类层次
19、结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。使用继承来实现代码的共享,这也是面向对象的主要优点之一。在不同应用中共享。面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享8。4. 强调对象结构而不是程序结构2.3 GDI+色彩鲜艳漂亮的高品质图像,一个个形象生动的Windows图标,高速运动、活灵活现的三维动画,这些无一不显示出程序设计者的艺术才华。在程序设计中,图像处理已经成为每个程序员的必修课9。在VC中编程显示一幅位图,下列步骤是不可缺少的:装入位图、获得位图的大小
20、信息、启用设备环境、位传输等,所需的程序代码一般比较冗长而且复杂。如果想将装入的位图另存为其他格式的图像文件,代码就更长了。这一切都是因为GDI本身的局限性造成的。GDI+技术使程序员不必了解每种图像格式的具体含义,照样可以写出多格式图像浏览或转换程序。和传统的GDI不同,GDI+中引入了对COM(组件对象模型)技术的支持,通过COM技术,GDI+简化了对图像文件的访问(打开、保存)。它是通过调用COM组件来实现的,GDI+扮演的只是指挥者,而非操作员。对于图像文件,GDI+所关心的不是图像文件的文件头信息,不论要打开的文件格式是什么类型,GDI+首先要做的是在注册表中查看该图像格式的编码(或
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Ne 俄罗斯方块 游戏 设计 实现
