ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:567.62KB ,
资源ID:5707749      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5707749.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(泡泡堂地图编辑器1112.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

泡泡堂地图编辑器1112.docx

1、泡泡堂地图编辑器1112目录摘要 IIAbstract III第一章 引言 11.1 课题背景 11.2 泡泡堂地图编辑器简介 21.3 本课题的意义 2第二章 开发环境以及相关技术介绍 32.1 开发环境 32.2 技术介绍 32.2.1C+ 32.2.2Windows 42.2.3Windows MFC 62.2.4Windows GDI 12第三章 需求分析 163.1应用需求分析 163.2 运行需求分析 173.3 其他需求分析 173.4 可行性分析 173.4.1 社会可行性 173.4.2 用户可行性 173.4.3 经济可行性 183.5 模块功能设计设计 18第四章 系统设

2、计 194.1精灵位图渲染 194 .2双缓冲技术 224.3 地图的保存 234.4 新建地图 254.5 打开地图 264.6 地图物体的增加与清除 274.7 景层选择 28第五章 系统测试 305.1物体的添加 305.2 物体的删除 315.3 前景层 315.4背景层 325.5 全景层 325.6 保存 335.7新建地图 335.8 打开地图 34总结 35参考文献 36致谢 37附录 38 摘要2D休闲类游戏是整个游戏行业的重要组成,随着游戏行业的快速发展,3D游戏的泛滥与质量下降与2D休闲类游戏所花费的时间和精力形成鲜明的对比,2D休闲类游戏一直深受各个年龄阶层玩家的喜欢。

3、网络游戏开发是一项很大的工程,需要很多综合性的知识。这对于刚刚入门的开发者来说很难理解。本论文从研究开发一个模仿泡泡堂地图编辑器的例子出发,讲述2D地图编辑器开发中用到的一些最基本的知识和设计思想,使大家清晰的理解游戏开发的过程。 整个设计中利用C+,Windows MFC,Windows GDI结合地图编辑的操作流程,对整个地图编辑器进行精心的设计和大量的测试,实现泡泡堂游戏的地图编辑功能,有上层地图了解泡泡堂地图是如何被开发出来,由于网络图片资源有限,本地图编辑器只能对小区地图进行编辑。关键词:2D游戏,泡泡堂地图编辑器,Windows MFC,Windows GDIAbstract 2

4、D games of leisure is the important component of the game industry, as the game rapid development of the industry, the spread of 3 D games with the decline in the quality and 2 D games of leisure spent time and energy form bright contrast, the leisure class 2 D game has been by each age class player

5、s like. Network game development is a very big project, need a lot of comprehensive knowledge. This to just entry-level developer is hard to understand. This paper from research and development a imitate PaoPaoTang map editor of the example set out, about 2 D map editor used in development some of t

6、he most basic knowledge and design ideas, make you clear understanding of the game development process. The whole design using c + +. Windows MFC, map editor with Windows GDI process, to the map editor for elaborate design and the number of test, realize PaoPaoTang game map editor functions, have th

7、e upper PaoPaoTang map is how to understand the map has been developed, because of network resources, pictures, local map editor can only the map editor.Keywords: 2 D game, PaoPaoTang map editor, Windows MFC, Windows GD第一章 引言 1.1 课题背景 随着社会的发展进步,游戏逐步成为一种重要的休闲娱乐和教育手段。这种被称为是第九艺术的电子游戏起源于西方,是基于电子技术发展起来的一

8、种具有娱乐性质的产业。随着电子技术的不断发展和扩充,游戏产业的内容也不断得到丰富,目前的游戏产业已经成为包含计算机软硬件技术、网络技术以及无线技术等最新科技和各种文化艺术的新型娱乐产业。而其中,游戏引擎技术可谓重中之重,它是整个游戏产业的核心技术。目前中国的游戏产业正处在一个稳定上升的发展阶段,中国将成为全球最大的游戏市场,现在我们所看到的仅仅是冰山之一角。根据IDSA的统计结果,如图1-1可以看出喜爱游戏是人类的天性,不分年龄段1。图1-1:游戏用户年龄分布,性别分布,日常时间闲暇分配从游戏的市场规模来看,2000年中国的网络游戏销售额仅为0.38亿元,2001年即达3.25亿元,而2002

9、年中国网络游戏市场规模达到10.2亿元,增长率为213.8%。根据IDC 2003年12月的最新研究,2003年中国网络游戏用户数量达到1380万,比2002年增长63.8%,占同年Internet用户数的20.2%,到2007年中国网络游戏用户数将达到4180万,从2002年到2007年这5年的年复合增长率将达到37.8%,届时网络游戏用户将占到Internet用户的29.5% 2。 1.2 泡泡堂地图编辑器简介在2004年全世界最火爆、在线人数最多的网络游戏,不是传奇、奇迹等深受欢迎的传统MMO,也不是梦幻西游、剑网、巨商等一大批后起之秀,而是盛大旗下的一款休闲游戏泡泡堂。泡泡堂地图编辑器

10、按玩家喜欢的方式制作属于自己的地图,从而对泡泡堂这款游戏有个更深的认识。1.3 本课题的意义本课题以开发该游戏地图为平台,综合运用C+,Windows MFC,Windows GDI,,实现程序中算法的实现,消息的传递,循环等。通过这些技术的综合运用,更深入的了解计算机程序方面的相关知识,熟悉游戏地图编辑器开发的理念和流程,了解整个游戏地图编辑器项目开发的关注点。该课题属于研究性的一个课题,不考虑商业上的应用。只是对技术研究的并不是游戏本身的娱乐性。第二章 开发环境以及相关技术介绍 2.1 开发环境 操作系统:Microsoft Windows XP 开发语言:C+,Windows MFC,W

11、indows GDI 2.2 技术介绍2.2.1C+C+是在C语言基础上为支持面向对象程序设计而研制的一个通用程序设计语言,它是在1980年由贝尔实验室的Bjarne Stroustrup博士创建的。C+语言开发的宗旨是使面向对象程序设计技术和数据抽象成为软件开发者的一种真正的实用技术。 C+适用的应用程序范围极广。C+可以用于几乎所有的应用程序,从字处理应用程序 到科学应用程序,从操作系统组件到计算机游戏等。 C+从C中继承了过程编程方式的高效性,并集成了面向对象编程方式的功能。 C+在其标准库中提供了大量的功能。 有许多商业C+库支持数量众多的操作系统环境和专门的应用程序。C+的变量都有这

12、样的特点:占用内存空间,有地址,可以取得变量的地址,也可以根据地址访问这个符号代表的变量。在书写变量说明时,应注意以下3点:(1)允许在类型说明符后,说明多个相同类型的变量。各变量名之间用逗号间隔。而类型说明符与变量名之间至少用1个空格间隔。(2)最后一个变量名之后必须以“;”号结尾。(3)变量说明必须放在变量使用之前。2.2.2WindowsWindows是当今主流的操作系统,也是网络游戏主要的开发平台。不论是网络游戏客户端开发还是服务器端开发,都有很多成功的网络游戏作品运行于Windows操作系统上。Windows XP是Microsoft继Windows 2000和Windows Mil

13、lennium之后推出的新一代Windows操作系统。Windows XP将Windows 2000的众多优点与Windows 98完美集成在一起。Windows操作系统的最大特色就是良好的用户交互性,这种交互性通过优秀的图形界面来实现。Windows操作系统将用户对应用程序窗口的所有操作(键盘按键、鼠标点击、窗口最大最小化等等)转化为Windows消息并分发给应用程序,应用程序对这些消息进行响应,从而实现用户对操作系统以及应用程序的控制。Windows程序设计是一种事件驱动方式的程序设计模式,主要是基于消息机制。Windows操作系统为每一个正在运行的应用程序维护一个消息队列。当应用程序有相

14、关的事件发生时,操作系统将产生一条特定的标识事件发生的消息,随后消息被送入应用程序的消息队列。应用程序的消息循环将接受和处理这些消息,从而对相关事件做出响应。当用户完成对应用程序(窗口)的某种操作时会调用操作系统的某种支持,操作系统会将用户的操作包装成消息,并发送到一个应用程序可以访问的消息队列中,最后应用程序从消息队列中取走消息,并进行响应。消息为应用程序和应用程序间、应用程序和操作系统间提供了信息传递的渠道。在进行Windows程序设计时,要用到大量的系统API,而这些系统函数的调用参数和返回值中常常会用到很多系统自定义的数据类型。大部分的Windows数据类型都是来自C语言数据类型。数据

15、定义的头文件为windef.h。typedef unsigned long DWORD;typedef int BOOL;typedef unsigned char BYTE;typedef unsigned short WORD;typedef float FLOAT;所有Windows自定义的数据类型都是全大写的。表示指针型的数据类型往往以P或LP作为前缀,而句柄型总是冠以H。句柄这种特殊的数据类型,可以理解为是指针,但又不能像指针那样直接通过地址去访问数据。Windows操作系统不是直接采用C+基本数据类型的原因:一方面是因为C+基本数据类型是由C+标准制定的,它的数据表示范围和解释有可

16、 能在不同的软硬件平台上会有差异。另一方面是为了更简单直观的表示某些数据类型.消息循环机制:Windows操作系统为每一个正在运行的应用程序维护一个消息队列。当应用程序有相关的事件发生时,操作系统将产生一条特定的标识事件发生的消息,随后消息被送入应用程序的消息队列。应用程序的消息循环将接受和处理这些消息,从而对相关事件做出响应。Windows程序的关键代码,担负着获取、翻译、分发消息的任务消息循环从GetMessage函数开始,它从消息队列中取出一个消息。如果取得的消息是WM_QUIT消息,那么GetMessage函数将会返回FALSE,消息循环就会结束。如果取得的消息不是WM_QUIT消息,

17、GetMessage函数将会返回TRUE,并将获得的消息传入TranslateMessage函数。TranslateMessage函数对消息进行必要的预处理后,消息将被送入DispatchMessage函数,DispatchMessage函数负责将消息传递给该窗口的消息处理函数进行处理。PeekMessage函数的基本功能和GetMessage函数相同,但PeekMessage函数不对WM_QUIT消息进行判断,当消息队列有可以取得的消息时取出消息并返回TRUE,没有可以取得的消息时,函数返回FALSE。如果希望当消息队列中有消息时,再调用PeekMessage获得消息,那么可以调用WaitM

18、essage函数(函数在没有消息时等待,直到有消息才返回)配合PeekMessage完成消息循环在MFC中很多代码都是封装好了的。我们只需要进行添加API函数就行。典型的SDK程序结构如下:2.2.3Windows MFCWindows MFC通过对Windows API函数进行面向对象的封装以及提供常用Windows应用程序的开发规范,提高Windows程序的开发效率。使用MFC技术可以快速、高效地开发多种窗口形式的应用程序.Windows MFC将其中的各种类结合起来组成一个应用程序框架,该框架定义了应用程序的构架和部分实现,同时保留了用户接口。在实际的开发过程中,程序员所要做的就是将需要

19、实现的功能代码填入MFC框架提供的用户接口中。在MFC程序设计中,将MFC应用程序根据程序构架的不同,分为单文档窗口程序、多文档窗口程序、对话框窗口程序以及多顶级文档窗口程序4类。Windows MFC通过对Windows API函数进行面向对象的封装以及提供常用Windows应用程序的开发规范,提高Windows程序的开发效率。使用MFC技术可以快速、高效地开发多种窗口形式的应用程序。在进行Windows程序设计时,要用到大量的系统API,而这些系统函数的调用参数和返回值中常常会用到很多系统自定义的数据类型。Windows MFC类库是C+类库,这些类封装了Win32应用程序编程接口、应用程

20、序的概念、OLE特性、ODBC和DAO数据访问的功能等内容。封装大体分成如下4类:(1)对Win32应用程序编程接口的封装类CWnd是MFC中常用的一个类,该类将Windows窗口和Windows有关的API函数封装到其成员函数内,CWnd类中的成员变量m_hWnd就是Windows API程序设计中的窗口句柄。(2)对应用程序概念的封装使用SDK编写Windows应用程序时,总要定义窗口消息处理函数,注册Windows Class,创建窗口等等。MFC把许多类似的处理封装起来,替程序员完成这些工作。MFC提出了以文档,视图为中心的编程模式,MFC类库封装了对它的支持。文档是用户操作的数据对象

21、,视图是数据操作的窗口,用户通过它处理、查看数据。( 3)对COM/OLE特性的封装OLE建立在通用对象模型(COM)之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。MFC的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。(4)对ODBC功能的封装以少量的能提供与ODBC之间更高级接口的C+类,封装了ODBC API大量的复杂工作,提供了一种数据库编程模式。MFC几个重要的类:(1)对话框类对话框类由CDialog派生,用于提供一个访问对话框的可编程界面。CDialog类中提供了大量与对话框编程密切相关的函数。CDialo

22、g类是从CWnd类派生出来的,它首先具有一个窗口类所具有的所有特征和功能,同时它又有自已的特色。从CDialog类派生的新类中,开发者需要实现和处理的对话框功能接口包括:1)对话框的创建和初始化。2)对话框数据交换(Dialog Data Exchange,DDE)与对话框数据检查(Dialog Data Validation,DDV)。3)事件响应函数。按照运行机制来划分,对话框可分为模式对话框和无模式对话框两种类型。模式对话框。一旦模式对话框弹出,用户就必须在对话框中做出适当的操作,退出对话框,应用程序才能继续进行。无模式对话框。无模式对话框在弹出后一直出现在屏幕上,用户可以在应用程序中继

23、续执行其他的操作或者启动其他的应用程序,当需要使用对话框时,只需要向激活一般窗口一样激活它就可以了。按照创建方式来划分,对话框可以分为自定义对话框、通用对话框、消息对话框3种类型。 自定义对话框是设计者按照应用程序的功能,分别设计对话模板和定义对话框类,然后在应用程序中使用。 在Windows中,很多程序都需要频繁的使用一些对话框来完成特定的功能。因此Windows系统直接提供了这类对话框,使得获取一个颜色,文字或字体变的非常简单。消息对话框是通过全局函数或者窗口类的成员函数创建并显示的,对话框中的内容在调用时由参数确定。 (2)控件类 控件是一些实现了特殊功能的子窗口,它们充当了窗口中的交互

24、元素,每个控件都有特定的风格为用户提供反馈信息。MFC的控件都派生自CWnd类,所有的控件都可以看作是它们所在窗口的子窗口。CWnd类中实现了大多数窗口和控件常用的方法。程序调用的CWnd派生类的成员函数经常不是由派生类自身提供的,而是在类CWnd中定义的。CWnd类中还包含一些On开头的函数,这类函数用于处理窗口消息。几个重要的控件:(1)按钮MFC中下压式按钮、单选按钮、复选框控件使用同一个CButton类。一个CButton对象可以是它们中的一种,这由它的按钮风格和成员函数Create的初始化决定。既可以从对话框模板中创建一个按钮控件,也可以直接在代码中创建。无论哪种情况,都要先调用CB

25、utton类的构造函数构造一个CButton对象,然后调用成员函数Create创建Windows按钮控件并应用到CButton对象上。(2)标签CStatic类提供了一个Windows静态控件的性能。静态控件用来显示文本字符串、框、矩形、图标、光标、位图以及增强的图元文件,分别以7种形态存在。一个静态控件一般不接收输入,也不提供输出,但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父窗口有关单击的消息。(3)编辑框 编辑控件是用来接受并显示用户输入的控件,MFC中封装编辑框的类为CEdit。编辑控件是一种子窗口矩形,可以通过对话框模板或直接从代码中创建一个编辑控件。 CEdit从C

26、Wnd继承了很多重要功能,还实现了很多多行文本编辑的功能。设置文本用SetWindowText,取得文本用GetWindowText,不管是多行文本还是单行文本,都可以用这种方法。 (4)列表框列表框控件通常用来列出一系列可供用户从中进行选择的项,这些项可以用字符串的形式给出,也可以采用图形等。可以设置允许用户在列表框中选择一个或多个控件。当选择了某项时,列表框向父窗口发送一条通知消息。MFC类CListBox封装了Windows标准列表框控件,其成员函数提供了对标准列表框的绝大多数操作。 (5)组合框 组合框(Combo Box)可以看作是一个编辑框或静态文本框与一个列表框的组合。 组合框有

27、以下3种风格:(1)CBS_SIMPLE风格,列表框总是可见,组合框上半部分为编辑框。(2)CBS_DROPDOWN风格,当用户单击下拉箭头时列表框弹出,组合框上半部分为编辑框。(3)CBS_DROPDOWNLIST风格,当用户单击下拉箭头时列表框弹出,组合框上半部分为静态控件。 (3)CView类在MFC文档视图架构中,CView类是所有视图类的基类,它提供了用户自定义视图类的公共接口。在文档视图架构中,文档负责管理和维护数据,而视图类则负责以下3项工作: (1)从文档类中将文档中的数据取出后显示给用户。 (2)接受用户对文档中数据的编辑和修改。(3)将修改的结果反馈给文档类,由文档类将修改

28、后的内容保存到磁盘文件中。CView是一个抽象类。这个函数必须被重载,通常执行如下操作:(1)以GetDocument()函数获得视图对应文档的指针。(2)读取对应文档中的数据。(3)显示这些数据。MFC体系框架在分工时把对显示器的显示输出和对打印机的显示输出全部都交给了视图类。CView派生类包括以下9种:(1)CScrollView:提供滚动支持,包括上下滚动和左右滚动。(2)CCtrlView:支持tree、list和rich edit控件,也就是说在这个视图中可以操作这些控件来进行特定格式的显示。(3)CDaoRecordView:在dialog-box控件中显示数据库记录。 (4)C

29、EditView:提供了一个简单的多行文本编辑器。 (5)CFormView:包含dialog-box控件,可滚动,基于对话框模板资源。 (6)CListView:支持list控件。 (7)CRecordView:在dialog-box控件中显示数据库记录。 (8)CRichEditView:支持rich edit控件。 (9)CTreeView:支持tree控件。 (4) CDOcument类在使用CDocument存储数据时,程序必须把数据以一定的顺序保存到文件中,同样以这个顺序再读取出来。存储的数据就像是排列好的一样,这种特性称为数据的串行化。这种把对象内容存入一个文件或从一个文件中读取

30、对象内容的过程称为序列化。在MFC中,要使从CObject派生的类具有串行化数据的功能,需要做如下工作:(1)定义该类时,在类说明中使用DECLARE_SERIAL(CLASSNMAE)宏。 (2)定义一个不带参数的构造函数(默认构造函数)。(3)在类的实现文件中使用IMPLEMENT_SERIAL(CLASSNAME,BASECLASS)宏。(4)覆盖Serialize成员函数(如果直接调用Serialize函数进行序列化读写,可以省略前面3步)。 (5) CFrameWnd类在MFC中,文档是真正的数据载体,视图是文档的显示界面,对应同一个文档,可能存在多个视图界面,同时需要另外一种事物来

31、将这些界面管理起来,这种事物就是框架。MFC提供两种类型的框架窗口:单文档窗口SDI和多文档窗口MDI。单文档窗口一次只能打开一个文档框架窗口,而多文档窗口应用程序中可以打开多个文档框架窗口,即子窗口。2.2.4Windows GDIGDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。 在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。 GDI具有如下特点: 1. 不允许程序直接访问物理显示硬件,通过称为“设备环境”的抽象接口间接访问显示硬件; 2. 程序需要与显示硬件(显示器、打印机等) 进行通讯时,必须首先获得与特定窗口相关联的设备环境; 3. 用户无需关心具体的物理设备类型; 4. Windows参考设备环境的数据结构

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1