2111.基于Visual C++实现的单机版俄罗斯方块游戏的设计毕业论文 .doc
《2111.基于Visual C++实现的单机版俄罗斯方块游戏的设计毕业论文 .doc》由会员分享,可在线阅读,更多相关《2111.基于Visual C++实现的单机版俄罗斯方块游戏的设计毕业论文 .doc(35页珍藏版)》请在三一办公上搜索。
1、本科生毕业设计 基于Visual C+实现的单机版俄罗斯方块游戏的设计摘 要俄罗斯方块是非常传统的游戏,操作简单,难度却不低,广受娱乐界欢迎。给人们的生活带来了健康愉快的补充,唯美的艺术享受。本文在基于Visual C+实现的单机版俄罗斯方块游戏的基础上,深入的研究MFC框架中的各个类的关系和它们内部之间的联系。主要工作和结论:1. 分析了俄罗斯游戏规则。2.系统的介绍了实现俄罗斯方块游戏的算法设计过程。3. 将研究的思路运用于实际,在VC+6.0平台下实现了俄罗斯方块游戏。关键词:俄罗斯方块游戏;VC+;MFC框架AbstractRussia is a very traditional bo
2、x of the game, simple operation, the difficulty is not low, widely welcomed by the entertainment industry. To the peoples life a happy and healthy complement to the flavor of the enjoyment of the arts. In this paper, based on the Visual C + + to achieve the single version of the Russian box on the b
3、asis of the game, MFC-depth study in the framework of various types and their internal relations between the links. And the main conclusions : 1. Analysis of the Russian rules of the game. 2. The system introduces a game of Russian box algorithm design process. 3. Will examine the practical applicat
4、ion of ideas, in VC + +6.0 platform under the Russian box game. Key words : Russian box game; VC + +; MFC framework 目 录II摘 要IABSTRACTI1 引言31.1 选题及研究意义31.2 论文研究的主要内容32.1 APP应用程序类物件42.2 文档视图机制52.3 DOCUMENT文挡操作62.4 文档-视图的关联63 俄罗斯游戏分析和总体设计73.1 俄罗斯方块游戏功能描述83.2 游戏规则分析84 俄罗斯方块游戏的实现94.1游戏核心数据的抽象与设计104.2 操作方
5、法的抽象与设计134.3 流程的设计与实现154.3.1 正常流程的设计154.3.2 正常流程的实现(定时处理)164.3.3中断操作流程的设计194.3.3中断操作流程的实现204.4 游戏区域绘图的实现214.4.1位图资源的准备214.4.2绘图机制设计224.4.3 绘图环境资源的初始化和释放224.4.4 游戏区域的绘制245.功能的完善275.1 游戏背景音乐的实现295.2 工具栏快捷键的实现30结束语33参考文献33致 谢34本科生毕业论文俄罗斯方块游戏的实现1 引言我们国家正处于全球文化产业日新月异大格局中,电子游戏、网络游戏的发展速度之快,更是令人眼花缭乱,目不暇接。未来
6、的电子和游戏发展趋势必将是更智能化、更艺术性、更人性味。在高性能的硬件设备的支持下,游戏的驱动引擎更具威力,控制功能更加完备,在一个错综复杂的极度扩张的游戏大世界中,带着超乎常人智慧的人工智能的应对力,使得所有要素包括艺术的风格、情感的互动、故事的铺展、视觉的表现、用户的界面,融合为有机的一体,给人们带来更丰富的娱乐和体验。好的游戏给人们的生活带来了健康愉快的补充,唯美的艺术享受,潜默的教育功效。本系统采用VC+为主要开发工具设计实现了一个单机板的俄罗斯方块游戏。与其他程序相比,笔者的作品有三个特色:一是精心设计的人机界面,不仅友好而且易于操作。二是笔者的游戏采用的是单机板。三是采用MFC应用
7、程序开发模型进行编制,使开发人员减轻创建Windows应用程序的负担。网络版的俄罗斯方块游戏是两个玩家通过网络进行较量,但在游戏过程中数据要通过服务器进行传送,网络版游戏经常会出现断线、超时等情况这些都是因为网络的速度比较慢造成的。而笔者设计的俄罗斯游戏虽然是单机版的,但速度快,提高了效率。1.1 选题及研究意义俄罗斯方块游戏是一个比较经典的游戏,根据软件工程有关的规范,以合理的开发原则,设计出单机的俄罗斯方块游戏,并给人们的生活带来唯美的艺术享受和健康愉快的补充。游戏软件是一种与文化背景密切联系的产品,具有很强的民族性和丰富的文化内涵。伴随着游戏软件在市场上的销售,与其相关的文化也随之传播。
8、因此发展我国自主的益智、健康的游戏软件已是当务之急。游戏是一种基于计算机的应用软件,是新型的休闲娱乐方式。当前开发的游戏软件应该做到知识性、娱乐性、趣味性、教育性相统一。1.2 论文研究的主要内容在论文完成过程中,认真学习了游戏开发的基本技术,OOD方法软件设计的基础知识,VC+程序设计语言等。结合游戏开发的过程、算法的设计与分析(如下坠物的生成、下坠物随机选择、游戏区画板实现的方法等)、软件工程等角度重点研究了实现游戏的算法和采用VC+平台设计游戏的优点和现存结构的不足之处。以下是论文的组织结构:第1部分是引言,主要介绍论文选题的意义、选题背景等相关情况。第2部分概述MFC应用程序框架。第3
9、部分是游戏规则的分析。第4部分是游戏算法的实现、游戏功能模块、操作界面以及系统分析及设计。第5部分是对整个论文的结束语。对论文的主要工作作了归纳总结,分析了进一步需要做的工作。2 MFC应用程序架构传统的Windows应用程序的开发使用API(Application Programming Interface)函数。API函数的功能主要是为Windows应用程序开发提供统一的编程接口。在使用API编程的过程中,窗口的创建和消息的处理都需要手工编码。一个简单的Windows应用程序的代码需要上百行,这使Windows应用程序开发变成了一件繁重的工作。现在编程,都是在Visual C+ 环境下采用
10、基本MFC(Microsoft Foundation Class)的Windows编程方法。Microsoft基本类库MFC是一个Windows应用程序框架,它是C+类结构的扩展。利用MFC提供的面向对象程序行色机的框架,可大大减轻程序开发人员创建Windows应用程序的负担。MFC提供了管理窗口、菜单、对话诓的代码,可实现基本的输入输出和数据的存储。此外,MFC还提供一个应用程序来发模型,此模型被称为文档视图模型。文档视图模型视将应用程序数据与用户界面元素分离的一种应用编程方法,它允许这两部分程序独立存在。这样,程序员在更改其中部分代码的时候,不会大幅度地更改另一部分。该游戏的实现采用 MF
11、C框架。在构架类视图中有MFC 基本架构组合 : App(应用程序)类、Document(文档)类、View(视图)类、Frame(框架)类和用于提示关于作者的对话框CAboutDlg类。下面对这几个类做一个简单的列表,如表2.1所示。表2.1 MFC应用程序架构表类别基类 描述ApplicationCwinApp代表应用程序的核心DocumentCdocument包含应用程序的数据集Windows Cwind主要用于图形用户界面(GUI)的对象,可以处理常见的 Windows消息FrameCframeWnd用于应用程序的主要Windows框架ViewVciew用于显示数据并与文档Docume
12、nt对象交互2.1 APP应用程序类物件每种语言都有一个程序入口(主函数),如C/C+语言的 main()函数。总地来说, main()函数的调用与终止代表着程序执行的开始与结束,在程序运行的过程中,无非是对一些业务性的功能流程进行不断的处理,当完成后才退出程序。其实,所有的程序也是采用同样的方法去实现, MFC机制巧妙地利用了Application 类去封装实现了这样的效果功能,每个CWinApp类对象实体都代表应用程序本身,它是基本的 Application Class(应用程序类),其封装了 Windows-based 应用程序的初始化、运行、 Message 映射和终止等功能。假如创建
13、了这样的一个对象实体,在运行期间处理初始化、消息映射、或者其他动作时就可以通过属性操作的调用去实现,而不像拥有结构化设计思想的 mainO 函数那样的顺序去实现。那么,现在就来看看这个 CWinApp 类对象的性质。在 MFC框架中,应用程序必须有且仅有一个从 CWinApp 派生的 Class Object(类物件),这个 Object 在 Windows 创建之前就会被创建,也就是说这个Object 会和其他 C+ 全局 Object 同时创建。当 Windows 调用 WinMainO 时(在MFC应用程序中,不必亲自调用 WinMainO,因为机制已经对它封装好,当应用程序启动时会由框
14、架自动调用),这个 Object已经可用了,并且该 Object是全局的。 当用AppWizard创建DocumentNiew 模式应用程序时,AppWizard会声明一个从CWinApp派生的Application Class, 因此,由AppWizard 所产生的.cpp文件中还包括 Message 映射、空的构造函数、一个应用程序 Object(即一个变量)和InitInstanceO函数。AppWizard提供的源代码和Message映射可以满足一些基本的任务,但在通常情况下,还是需要手工修改那些源程序,特别是要修改Initinstance()函数。在 CWinApp 中,有以下几个关
15、键的可重写的成员数。 InitInstance(): 此函数对文档模板(Document Template)进行创建和初始化,即在这过程中伴随着Document、View 和 Frame 的创建。 Run(): 初始化后,WinMain 就会调用这个成员函数去处理 Message 循环。 ExitInstance(): 每当一个应用程序的Copy (拷贝)终止时,就会调用这个函数,即发生在应用程序退出时。 OnIdle(): 当没有 Windows Message 处理时,就会由Framework调用这个函数,并重写这个函数去执行后台任务。当用户从CWinApp派生一个Application
16、Class 时,必须重写成员函数InitInstance() 去创建应用程序的Main Window Objecto Windows 允许同时运行同一个应用程序的多个“Copy”, 而且该应用程序的每个Instance(包括第一个的)都会被初始化,而初始化时都会用到被 Override了的 InitInstance() 函数所提供的信息。通常情况下,每个 Windows-based 应用程序都有一个 Main Window 。因此,在初始化完成后, Framework 就会检查是否存在一个指向有效 Main Windows( CWinApp:m_pMain Wnd) 的指针,如果不存在的话,应
17、用程序就会终止。当利用 AppWizard 创建应用工程项目时,AppWizard 会重写缺省的InitInstance()来创建Main Window Object,还会使 CWinApp 的数据成员 m_pMainWnd 指向那个 Window 。2.2 文档视图机制文档对视图的管理。若用非文档,视图机制的时候,交互界面显示的只有一种视图,在这种情况下,可以将内部数据以一种对应规则用图像显示出来。将一份数据用不同的方式去展示,并且将它们放在不同的窗口视图中,MFC机制给出了这样的实现方法:先用一个 CDocument 这样的物件去处理数据的管理,然后用一个CView这样的物件去管理视图的显
18、示,这样一来,所有不同的显示图像若要以某种方式反映出数据的特性,必须在数据源和众多不同方式的图像显示之间有一定的关联。对于它们的关联,MFC机制用了一个很好的方法,就是将所有与这个数据源相关的图像显示都独立用 CView 物件去表示,而当数据源就抽象成 CDocument 物件, 而在 Document 中有这样的一个指针列表 CPtrList 类型的日 员变量 m_viewList, 将所有这些与之关联的视图用链表串起来。而这些用于显示不同性质的图像视图类也可以通过 GetDocument()来获取其所对应的 Document 文档数据。2.3 Document文挡操作由于 MFC 机制设计
19、出文档类对象专门负责数据的 I/O 存取和数据的运算和操作等。一般来说,数据运算是通过 Document 类里面的扩展功能来实现的,这样做可以形成一种密集数据处理,达到方便易用和管理的好处。对于一个文件而言,如果文件内对象的排列顺序是固定的,那么对于文件读和写从形式上只有使用的运算符的不同。在 MFC 的文档-视图-框架结构中,一个文档的内部对象的构成往往是固定的,在这种情况下,写到文件中的对象在文件中的布局也是固定的。因此 CDocument 是利用其基类 CObject 提供的 Serilize()虚函数实现自动文档的读写操作的。 当用户在界面上选择文件菜单或打开文件 (ID_FILE_O
20、PEN)时,CWinApp派生类的 OnFileOpenO 函数将被自动调用,它通过文档模板创建或重用框架、文档和视图对象,并最 终调用 CDocument: :OnOpenDocument()来读文件。 当用户选择菜单文件或文件保存(ID_FILE_SAVE) ,选择文件或另存(ID_FILE_SAVEAS) 时,是通过呼叫函数 CWinApp: :OnFileSave() 和CWinApp: :OnFileSaveAs()并最终调用 CDocument: :OnSaveDocument() 实现的。2.4 文档-视图的关联视图与文档和窗口的关联和协调工作可以从视图类对象的 OnDraw()
21、 函数开始,找出关联的物件与关系。在 MFC 机制中,关于 DocumentNiew 架构的项目工程和 OnDrawO 函数的驱动绘图触发的流程 :CDocument:UpdateAIIViews()-CView:OnUpdate()- CWnd: :Invalidate()-OnPaint()-OnDraw()从流程可知当用于装载重要数据的 Document 类对象中的数据发生变化时,为了能让与其关联的各个视图实时表现出数据的特征性质,需要通知所有这些关联的视图进行更新重绘 , 而Document类对象就拥有通知所有视图重绘的这样的一个功能函数。对于UpdateAIIViews() 函数实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2111.基于Visual C+实现的单机版俄罗斯方块游戏的设计毕业论文 2111. 基于 Visual C+ 实现 单机 俄罗斯方块 游戏 设计 毕业论文
链接地址:https://www.31ppt.com/p-7037205.html