




免费预览已结束,剩余45页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学本科毕业论文游戏地图编辑器的设计与实现本 科 毕 业 论 文 游戏地图编辑器的设计与实现Design and Implementation Game Map Editor姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级:校外指导教师: 校内指导教师: 年 月摘 要游戏地图编辑器,就是是用来编辑游戏地图的工具,它是游戏开发过程中的一个重要的工具。不论是2D游戏,还是3D游戏,几乎任何一款商业游戏都有自己的游戏地图编辑器。一个地图编辑器是否优秀决定着一款游戏的好坏。地图编辑器通常是由程序、策划和美术人员所讨论出来的。因为策划或者美术人员通常是地图编辑器的使用者,程序则负责做出这一套地图编辑器供使用。程序开发地图编辑器的目的在于游戏中的地图需要在程序中记录地图上的某处是否可以行走、人物走到其上是否半透明显示、是否是关键路径点(用于寻路算法)、是否有事件触发、是否有NPC等信息。地图编辑器不光是把地图显示出来,它所包含的功能几乎占了游戏的一大半。凡是和地图相关的,全部都要靠地图编辑器来赋予其适当的功能。这些信息在程序里既不直观且不容易设置,并且设置之后不易于修改,于是游戏开发人员就通过开发地图编辑器,将这些信息以直观的形式体现并独立出来,从而方便进行地图信息的编辑。通常地图编辑器的用户是游戏的策划人员,这样就可以做到游戏设计和程序的分离,提高了游戏开发的效率。综上所述,一个好的地图编辑器不仅可以包含游戏大部分的功能设定,还可以减少公司开发游戏时所耗费的成本,是各游戏公司制作游戏的首选方法。针对二维网页游戏的特点,本文研究了基于Action Script 3.0语言的AIR游戏地图编辑器的设计和实现方法。本文的主要研究内容包括:(1) 游戏地图编辑器的各种地图信息的图形化编辑功能的实现;(2) 游戏地图信息二进制文件的存取及格式。本文以软件工程思想为主线,从总体设计、模块设计等方面,详细介绍了上述系统的设计和实现过程。关键词:游戏;效率;地图编辑器 Design and Implementation of Game Map EditorAbstractMap editor is a tool that used to edit game map. Its an important tool during game development. Either 2D or 3D Games, almost all the commercial game has its own game map editor. A map editor is good or not determining whether the game is excellent or disappointing. Map editor usually is discuss by programmers, game designers and game arts. Game designers and game arts are the users, and programmers are response for coding.The purpose of programmer designing a map editor is that the map in game need record which road can be walk through, which place when role stand on is need to be transparent, which point is key point(used by pathfinding algorithm), which place can trigger an event, which place has an NPC. Map editor is not only just show the map, but also contain more than half function in the game. Anything relating to game map need map editor to endow a proper function. If this information is written in codes, you may pay a heavy price for that as it is hard to modify. So game developer design a map editor, set this info apart from codes in an intuitionistic way, make it easier to modify the info. Usually, map editor is design for game designers, which separate the game design and program, add so much to game development efficiency.To sum up, a good map editor not only include most of the game function settings, but also save the cost during game developing, is a first choice to help company develop game.This thesis is design and implementation of 2D web game map editor. It is contains these parts:1. Implementation of all kinds of map info which can be edited by GUI.2. Define, save and load the game map info binary file.This thesis is based on the software engineering idea. It contains design of framework, design of model and so on in detail.Keywords: Game; Efficiency; Map Editor目 录第一章引言81.1研究背景及选题意义81.2研究现状及存在问题91.3 主要内容及创新点121.4本文结构安排13第二章地图编辑器的总体设计152.1引言152.2需求概述152.3开发环境152.4功能模块设计162.4.1 Lib工程总体设计162.4.2 主工程总体设计172.4.3地图信息文件存储格式设计18第三章系统的详细设计193.1 Lib工程详细设计193.1.1类设计193.2 主工程详细设计:233.2.1类设计233.3地图信息文件存储详细设计343.3.1文件头设计343.3.2块头设计343.3.3阻挡透明信息块设计343.3.4关键路径信息块设计343.3.5布雷属性块设计34第四章系统的运行结果354.1地图信息文件的存取354.1.1新建地图354.1.2打开地图364.1.3保存地图信息文件374.2阻挡透明信息的标记384.2.1阻挡信息的标记384.2.2透明信息的标记384.3 NPC的布置394.3.1导入NPC数据394.3.2编辑NPC数据404.3.3导出NPC数据414.4关键路径信息的设置424.4.1关键路径点的设置424.4.2关键路径点连线的设置434.5雷区信息的设置444.5.1雷区文件的导入444.5.2雷区的编辑45第五章结论与展望47致谢49ContentsChapter 1 Introdution81.1 Background and Significance81.2 Research Status and Problems91.3 Main Research and Contents121.4 Outline of Thesis13Chapter 2General Design of Game Map Editor152.1 Introducrion152.2 Requirement152.3 Develop Enviroment152.4 Function Modules Design162.4.1 General Design of Lib Project162.4.2 Genral Design of Main Project172.4.3 Design of Map Info File18Chapter 3Detail Design of Game Map Editor193.1 Detail Design of Lib Project193.1.1 Class Design193.2 Detail Design of Main Project233.2.1Class Design233.3Detail Design of Map Info File343.3.1 Design of File Head343.3.2 Design of Chunk Head343.3.3 Design of Block and Transparent Chunk343.3.4 Design of Key Path Chunk343.3.5 Design of Mine Zone Chunk34Chapter 4Results of Actuall Run354.1 Save and Load Map Info File354.1.1 Create Map354.1.2 Open Map364.1.3 Save Map Info File374.2 Edit Block and Transparent Info384.2.1 Edit Block Info384.2.2 Edit Transparent Info384.3 Lay Out NPC394.3.1 Load NPC Data394.3.2 Edit NPC Data404.3.3 Save Npc Data414.4 Edit Key Path Info424.4.1 Edit Key Point424.4.2 Edit Key Path Line434.5 Edit Mine Zone Info444.5.1 Load Mine Zone File444.5.2 Edit Mine Zone45Chapter 5Conclusion and Discussion47Acknowledge49第一章 引言 游戏产业在我国经济建设中起着越来越重要的作用,尤其是2004年以后,游戏产业的发展异常迅速,在经济市场中所占的比重越来越大。因此,近几年游戏设计的理念也在不断发展。而游戏地图编辑器在游戏制作中起着十分重要的作用,几乎所有的商业游戏都有一款自己游戏地图编辑器。这里我们将对适用于制作二维网页网络游戏的地图编辑器进行阐述,最后对本文研究内容以及本文的结构安排进行总体概述。1.1研究背景及选题意义这几年,中国经济以8左右的速度持续平稳的增长,2007年中国游戏产业的实际增长速度更是高达61.5%1。游戏产业已经成为经济市场中增长速度最快的热点,是众所关注的焦点。从1994年中国自制的第一款商业游戏神鹰突击队至今,中国的游戏产业发展才不到15年的时间,但是却在经济发展中起着举足轻重的作用,为我国的经济建设、文化产业和创意产业的发展做出了巨大的贡献。游戏是文化创意产业里的一部分,创意经济是知识经济的核心内容,更是其经济的重要表现形式,没有创意就没有新经济2。游戏设计是文化艺术创意和商品生产的结合,游戏设计开发综合运用了电脑技术、多媒体技术、软件工程技术、计算机图形学、人工智能和网络通讯等技术。游戏地图编辑器,顾名思义,就是用来编辑游戏地图的工具。它是游戏开发过程中的一个重要的工具,不论是2D游戏,还是3D游戏,几乎任何一款商业游戏都有自己的游戏地图编辑器。一个地图编辑器是否优秀决定着一款游戏的好坏。游戏中的地图需要在程序中记录地图上的某处是否可以行走、人物走到其上是否半透明显示、是否是关键路径点(用于寻路算法)、是否有事件触发、是否有NPC等信息。这些信息在程序里既不直观且不容易设置,并且设置之后不易于修改,于是游戏开发人员就通过开发地图编辑器,将这些信息以直观的形式体现并独立出来,从而方便进行地图信息的编辑。通常地图编辑器的用户是游戏的策划人员,这样就可以做到游戏策划和程序的分离,提高了游戏开发的效率。就以星际争霸的地图编辑器来说,通常玩家只要开启地图编辑器,将所要的高山河流图案“贴”上去,然后再放几个兵种,设定过关条件,最后储存起来,就可以进入游戏玩自己设定的关卡了。像这样一个简单的工作就可以处理好一个游戏关卡(玩家连一个程序都不用写),可见地图编辑器包含了多么强大的功能。换个角度来说,像这样的地图编辑器,连玩家都可以自定义关卡,可以想象游戏公司的策划人员是多么的轻松愉快了。所以,一个好的地图编辑器不仅可以包含游戏大部分的功能设定,还可以减少公司开发游戏时所耗费的成本,是各游戏公司制作游戏的首选方法。1.2研究现状及存在问题游戏在欧美的研究是从1961世界第一款交互式游戏太空大战诞生开始,已经发展了四十多年的历史,取得了不少成功经验。2007年美国视频游戏和游戏软件销售额达到了179亿美元,较2006年增长了43%,超过了电影,成为美国第一娱乐产业。日本经济的近20%是电子游戏产业所创造的。韩国的游戏产业也达到了200亿美元的产值,超过汽车工业成为韩国经济的支柱产业。与他们相比,中国的游戏市场仍是一个新兴的市场。根据2008年中国游戏产业调查报告,截至到2008年12月,中国网络游戏用户数已达到4936万,比2007年增长22.9,付费网络游戏用户数达到3042万,比2007年增加了36.0%,网络游戏市场实际销售收入为183.8亿元人民币,比2007年增长了76.6%。3据2008年中国游戏产业调查报告,到2008年10月,中国网络游戏研发公司数量已达131家。全国游戏研发从业人员数量达到24768人,比2006年的21034人增长17.8%。4。游戏的发展从设计思想上可以划分为传统单机游戏和网络游戏游戏两种类型,这两种不同类型的游戏在游戏进行的方式上有着各自的特点,我们通过表1.1来对比这两种类型游戏之间的主要区别:表1.1 传统单机游戏和网络游戏主要区别游戏形式游戏内容游戏架构传统单机游戏单人为主以特定的故事背景为游戏的主线只有客户端网络游戏多人在线以玩家间互相竞争为游戏的主线客户端 & 服务端资料来源:Windows游戏编程大师技巧5和3D游戏编程大师技巧6从表1.1可以看出传统单机游戏和网络游戏从游戏形式,游戏内容,游戏架构上都有本质的区别,下面我们对这两种游戏的发展特点进行简要分析:(1) 传统单机游戏:传统单机游戏是从简单的电视互动游戏发展开始,经历了电子游戏,益智游戏,电脑单机游戏等发展过程。传统单机游戏的特点是有丰富的游戏类型,重视游戏的故事情节和故事背景,注重玩家的个人成长。(2) 网络游戏:网络游戏是在上世纪90年代末电脑网络技术得到快速发展,互联网让地球变成了一个村落,网络游戏也随着网络的普及迅速取代了单机游戏,以惊人的速度发展起来,成为了游戏市场的主流。从2000年中国第一款网络游戏万王之王开始,到2001年推出的石器时代,2002年推出的传奇,2004年推出的魔兽世界,网络游戏市场遍地是黄金的消息成为了人们茶余饭后的谈资。网络游戏从游戏内容上可以分成角色扮演类网络游戏、休闲类网络游戏和最近刚刚兴起的社区型网络游戏三种。作为二维角色扮演网页游戏地图编辑器开发选用的语言Action Script当前的最新版本是3.0版本,为什么采用Action Script 3.0作为开发的语言呢?因为它具有如下几个特点:(1) 主流:AS3是全新一代(Adobe目前主推)的Action Script语言,从Flash Player 9.0起开始正式全面支持。(2) 强壮与高效:AS3是Action Script语言强壮与高效的代名词,Adobe与很多大型IT公司的项目产品都已经陆续开始置入AS3版本,比如Adobe Flex、Flex Builder、Flash、AIR、Scene7 On Demand服务、Buzzword、Adobe LiveCycle、SAP NetWeaver、Oracle MetaLink等,Google及Yahoo等国际一流互联网企业也有很多产品使用了AS3。AS3的出现是RIA体系满足大型企业应用表现层需求的一个里程碑。(3) 标准:AS3有超过前一个AS版本10倍以上的性能,因为其提供了一个出众的面向对象模型和一个全新的虚拟机AVM2,加入了全新的E4X(ECMA for XML)支持,还与ECMA(欧洲计算机制造联盟)工业标准V4的版本保持一致。通过Action Script 3.0开发的桌面应用程序为Adobe AIR桌面应用程序,Adobe AIR目前的最新版本为1.5版本。Adobe AIR允许你利用现有的web开发技能(包括Flash, Flex, HTML, JavaScript,Ajax)优势,建立和配置跨平台(或跨操作系统)的桌面RIA(InternetApplications)应用。AIR能使你在熟悉的环境下工作,去利用你觉得的最舒适的工具,并且通过支持Flash,Flex,HTML,JavaScript,and Ajax,去建立接近你需要的尽可能好的体验。因为AIR是一个运行时应用程序,运行时提供一个一致的跨操作系统的平台和用于开发发应用的框架,因此免除了对于跨浏览器的保证功能一致性的测试和跨桌面的交互。比起开发基于具体某个具体操作系统的应用程序,AIR是一个运行时程序,这带来了如下的好处: (1) 应用程序开发跨越多个平台,这些都不需要你额外的工作。(2) 应用程序可以用你熟悉的web技术和设计模式快速建立,而不用学习传统的复杂的本地桌面开发技术,不用学习底层开发语言如c或c+,也不需要学习每一个特定的操作系统的底层API技术。(3) 当开发基于AIR的应用程序时,你可以利用的框架和API的优势AIR提供一个新的范例,大大地改变了应用程序被创造,部署和体验的方式。无需学会传统桌面开发技术,你就能取得更多创造性的控制,并且能扩展你的Flash, Flex, HTML和基于Ajax的桌面应用。8游戏产业的发展速度虽然很快,可是游戏设计开发的发展却是曲折的,2008年的前五个月,中国网络游戏行业平均每过20天,就有一款网络游戏或是一家网络游戏公司宣布退出市场10。经过最近几年的市场洗礼,有据可查的停运游戏产品在百款以上,这里面还不包括很多变相停运、名存实亡的网络游戏。对目前游戏开发进行分析,游戏的设计和发展有以下4个主要问题8,9:1. 传统游戏侧重游戏的游戏性却忽视了游戏的交流性,消费群体不断缩小;2. 网络游戏侧重游戏的实时交流性出色,却因为游戏内固有的竞争机制,使得网络游戏很难承载深厚的文化背景,行业参与者短时间急速膨胀,整体缺乏良好的发展思路,多数产品又大同小异,必然遇到发展的瓶颈;3. 新老游戏消费群体的交替造成对游戏需求变化的冲击。新生代的游戏消费群体已经厌倦了重复的游戏模式,期待更加个性化和新型体验方式的游戏出现;4. 国内网页游戏技术的发展与国外还有相当大的差距。网页游戏开发技术尚未成熟,开发中有许多需要摸索的地方。目前国内对于网页游戏的设计开发距离深耕细作还相差较远,但谁也不敢轻视网页游戏所能创造的财富11。网页游戏设计,从深度上来讲考验的是我们对于消费需求的敏锐洞察,从广度上来说考验的却是我们对于生活的综合感悟以及对于流行的良好嗅觉12。探索游戏新的设计模式和领域,带给消费者更新、更深入的游戏体验,是我们值得思考的地方。1.3 主要内容及创新点本文以基于开发二维网页游戏地图编辑器这一实际项目的设计与实现为基础,研究游戏地图编辑器的设计框架与技术。我们的主要研究内容如下:1、 地图编辑器的信息的可视化编辑方法。具体包括如下四个方面的内容:(1) 阻挡、透明信息的可视化编辑。由于阻挡、透明信息的编辑方式类似,因而可放在一起作为一类来研究。由于游戏地图可能十分巨大,所以在编辑阻挡、透明信息的时候需要考虑合适的方法来提高编辑的效率。(2) NPC信息的可视化编辑。涉及到NPC模板表的读取(需解析XML文件),NPC模型的导入(SWF文件的显示),NPC实例表的生成(生成XML文件)。首先需要明确NPC模板表需要有哪些字段,并且这些字段是必须的,因为XML格式的文件大小远大于二进制格式保存的文件,所以需要控制非必须字段的写入,再根据这些字段来生成相应的XML文件。其次在NPC的模型导入及显示的过程中需要注意NPC显示的位置。由于NPC模型文件是一个SWF文件,并且每个NPC的高度不尽相同,为了精确显示NPC的位置,就不能以SWF文件左上角的点作为贴图点,而要根据定义的中心点(X坐标为SWF文件的中心,Y坐标为SWF文件底边向上32个像素值)来显示NPC的位置。(3) 关键路径的可视化编辑。包括关键路径点的设置以及关键路径连通线的设置。关键路径连通线标明了两个关键路径点之间是否存在可行走的路经。关键路径点和关键路径连线是关键点寻路算法的基础。(4) 雷区信息的可视化编辑。雷区信息包括雷区的范围,普通战斗和特殊战斗的触发几率,触发战斗后将会出现的战斗NPC(即通常所说的怪物)的种类以及触发几率。设计时需要考虑对于不同雷区之间的区分(如用不同颜色来区别),以及避免雷区重叠,并且最大程度的简化操作。2、 地图信息文件的保存格式。由于网页游戏的无客户端的特殊性,这就要求在网络上传输的数据的大小尽可能的小以保证游戏的流畅性。所以地图信息文件需要采用二进制的格式,通过特定的算法和数据结构来进行保存,最小化地图信息文件的大小,并提高了文件的保密性。本文研究的主要方法是通过对需求的分析,结合实际游戏客户端的开发来确定游戏地图编辑器的系统。其创新点如下:1、 与大部分采用C+语言编写的地图编辑器不同,本文阐述的游戏地图编辑器采用Action Script 3.0语言结合Adobe Air 1.5进行编写,在程序界面的编写上比起使用C+语言简易许多13,并且采用mxml的方式来进行程序界面设计,可以很容易的实现逻辑与界面的分离14。2、 与传统的游戏地图编辑器不同,该地图编辑器的作用对象是二维角色扮演网页游戏,而二维角色扮演网页游戏在目前的互联网上才刚刚萌芽。1.4本文结构安排本文的重点是二维网页游戏地图编辑器的的设计与开发,因此将以此为主线,分析游戏地图编辑器的实现的技术。本文共分为四个章节,各章节安排如下:第一章 绪论,介绍了本课题的背景及实际意义、游戏设计的发展历史和阶段,国内外研究的现状以及目前游戏设计存在的问题等,最后简述了本文的研究内容以及课题特色;第二章 结合目前的主流技术,设计出游戏地图编辑器的总体框架,并结合游戏客户端的设计需要进行设计与实现。第三章 根据游戏地图编辑器的总体设计思路,对游戏地图编辑器各个模块进行详细设计和实现。第四章 对游戏地图编辑器各个部分的功能进行展示。第五章 对本论文的一个总结和展望,对论文的特色进行了阐述,同时分析该设计方法存在的不足并对该方法的进一步研究进行了展望。第二章 地图编辑器的总体设计2.1引言编写总体设计的目的在于从总体设计的角度明确系统的功能和处理模式,明确系统的程序模块设计,包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等,使系统开发人员和管理人员明确功能,可以有针对性的进行系统开发、测试、验收等各方面的工作。2.2需求概述本系统是游戏地图编辑器,系统存在的价值在于方便游戏策划进行游戏地图信息的编辑。地图信息包括如下几种:(1) 地图的阻挡信息,阻挡信息用于设定人物是否可行走。(2) 透明信息。透明信息用于标示人物走到该位置的时候是否半透明显示。(3) NPC信息。NPC信息用于设定游戏地图中哪里有NPC存在(包括功能NPC和脚本NPC)。(4) 关键路径信息。关键路径信息用于为游戏的寻路算法提供支持。(5) 雷区信息。雷区信息用于表明地图的哪些区域会触发战斗,战斗将会遇到何种怪物以及怪物的强度、数量等等。同时要求地图编辑器需要有良好的操作体验,对于策划的各种需求都有方便快捷的实现方法。2.3开发环境由于采用Action Script 3.0开发Adobe Air桌面应用程序,所以需要已安装Adobe Air 1.5版本运行环境的操作系统。在开发中我们选择Flex Builder 3.0集成开发环境(IDE),该集成开发环境提供了丰富的用户控件,同时支持插件,故可提供良好的用户界面体验。2.4功能模块设计根据游戏策划的需求,经过分析,可将整个系统的功能模块划分为五部分:地图信息存取,阻挡透明信息编辑、NPC信息编辑、关键路径编辑、雷区编辑。如图所示:游戏地图编辑器地图信息存取阻挡透明信息编辑关键路径编辑NPC信息编辑雷区编辑图2-1 游戏地图编辑器功能分解图系统总体共有两个工程,一个Lib工程和一个主工程,其中主工程使用了Lib工程提供的方法。拆分为两个工程的原因在于游戏的客户端可以共用Lib工程的代码,最大程度的避免代码的重复。2.4.1 Lib工程总体设计图2-2 Lib工程包设计图包说明:mapdata包:包括地图的各种数据及操作。infos包:包括地图的各种信息。mapfilehandler:用于地图信息文件的处理。2.4.2 主工程总体设计图2-3 主工程包设计图包说明:common包:主要包括各种通用的类。frames包:包含各个窗体的窗体外观描述文件,窗体描述文件用于在Flex Builder中对各个窗体的外观进行可视化设定。窗体描述文件可作为一个类被使用。windows包:用于控制frames包内各窗体显示逻辑的类。layer包:包括地图信息的各显示层。xml包:用于处理与 xml相关的各种文件及数据。mine包:用于处理雷区相关的xml文件。npc包:用于处理NPC相关的xml文件。mapinfofile包:用于处理地图信息文件。mapdata包:主要包括地图信息数据及相关的处理方法。info包:主要包括与地图信息文件有关的各种信息类。mapfilehandle包:主要包括地图信息文件的处理类。2.4.3地图信息文件存储格式设计地图信息文件的存储格式将如图2-4所示,整个文件分为文件头区域及文件块区域。其中文件块区域包含阻挡透明信息块,关键路径信息块和布雷属性块。每个文件块的结构可分为块头和块内容。图2-4 地图信息文件存储格式第三章 系统的详细设计3.1 Lib工程详细设计3.1.1类设计1、 s包类设计图3-1 Ms包类设计图类说明:DiamondInfo:地图网格的属性信息FightNpcGroup:战斗NPC组IMapInfoManager:地图信息管理类接口,提供按地图坐标返回阻挡、透明信息方法,以及获得地图关键路径信息。KeyPointInfo:关键路径点的信息MapInfo:地图的基本信息MineZoonProperty:雷区属性NpcAttribute:NPC属性2、 mapdata.mapfilehandle包类设计图3-2 mapdata.mapfilehandle包类设计图类说明:ConstValue:Lib库中用到的全局常量MapHeader:地图信息文件的文件头ISerialize:二进制文件数据块所用到的接口,提供了将数据序列化为二进制信息以及将二进制信息反序列化为数据的方法。序列化的目的是为了便于生成二进制地图信息文件,反序列化的目的是为了解析对应的二进制文件块。ChunkHead:二进制文件每个文件数据块块头的信息,实现了ISerialize接口提供的方法。FloorInfoChunk:地板信息块,包括网格位置以及对应的阻挡信息,透明信息,实现了ISerialize接口提供的方法。KeyPathChunk:关键路径信息块,实现了ISerialize接口提供的方法。MineChunk:布雷信息块,实现了ISerialize接口提供的方法。MapInfoReader:地图信息解析类3、 mapdata包类说明图3-3 mapdata包类设计图类说明:StaticValue:Lib提供的全局静态变量Tools:Lib提供的工具函数类3.2 主工程详细设计:3.2.1类设计1、 common包类设计图图3-4 common包类设计图类说明:EditConst:程序中用到的全局常量GlobalState:全局变量及静态函数类KeyState:键盘状态类MapEditorCursor:地图编辑器光标样式NpcInstance:NPC实例的结构体NpcTemplet:NPC模板的结构体2、 frames包类设计图图3-5 frames包类设计图类说明:ButtonBarFrame:按钮栏IndexFrame:索引栏MapEditorFrame:地图编辑器主窗体MenuBarFrame:菜单栏MineZoonFrame:雷区信息设置窗体NewMapFrame:新建地图窗体NpcAttributeFrame:NPC属性设置窗体OpenMapFrame:打开地图窗体SetFightNpcFrame:设置战斗NPC窗体SetMapIdFrame:设置地图ID窗体SetPathFrame:设置要导入的资源路径的窗体SmallMapFrame:小地图显示窗体3、 layer包类设计图图3-6 layer包类设计图(1)图3-7 Layer包设计图(2)类说明:BackgroundLayer:背景层BaseLayer:各显示层的基类,提供添加信息,移除信息,清空信息的方法。GriddingLayer:网格信息显示层BlockInfoLayer:阻挡信息显示层TransInfoLayer:透明信息显示层KeyPathLayer:关键路径显示层KeyLine:关键路径连线MineLayer:雷区显示层NpcLayer:NPC显示层ScriptInfoLayer:脚本信息显示层,该层并未实际用到,为预留的显示层4、 mapinfofile包类设计图3-8 mapinfofile包类设计图类说明:MapInfoWriter:将地图信息写成二进制文件的类5、 window包类设计图3-9 windows包类设计图类说明:ButtonBarWnd:按钮栏逻辑控制类IndexWindow:索引窗体逻辑控制类MineZoonWindow:雷区窗体逻辑控制类NewMapWindow:新建地图窗体逻辑控制类NpcAttributeWindow:NPC属性窗体逻辑控制类OpenMapWindow:打开地图窗体逻辑控制类SetFightNpcWindow:设置战斗NPC窗体逻辑控制类SetMapIdWindow:设置地图 ID窗体逻辑控制类SetPathWindow:设置要导入资源的资源路径的窗体的逻辑控制类SmallMapWindow:小地图窗体的逻辑控制类6、 xml包类设计图3-10 xml包类设计图类说明:XmlWriter:生成Xml文件的类MineZoonReader:雷区信息读取类NpcInstanceReader:NPC实例信息读取类NpcInstanceWriter:生成NPC实例表的XML文件的类NpcTempletReader:读取NPC模板表的类7、 地图编辑器入口类设计图3-11 地图编辑器入口类属性图3-12 地图编辑器入口类函数类说明:MapEditor类:为整个程序的入口类,负责添加将各窗体整合到程序主界面中,并将从界面中收到的各种鼠标、键盘信息转发给相应的对象来处理。3.3地图信息文件存储详细设计 第二章已经对地图信息文件的总体存储格式有了总体介绍,本节将对各个具体模块进行详细说明。3.3.1文件头设计地图的文件头包括地图的版本号、地图的ID、地图宽度、地图高度、文件大小和块的总数量。3.3.2块头设计块头包括块的标志以及该块除去块头剩余部分的大小。3.3.3阻挡透明信息块设计阻挡透明信息快包括块头、横向菱形网格有效个数、纵向菱形网格有效个数以及若干个阻挡透明信息。其中每个阻挡透明信息是一个32位的数据,前24位用于表示在菱形网格数组中的位置,后8位用于表示该位置的网格的阻挡透明情况。3.3.4关键路径信息块设计关键路径信息块包括块头以及若干个关键路径点信息。每个关键路径点的信息包括该点在地图上的坐标,以及与该点相连通的的点的索引。3.3.5布雷属性块设计 布雷属性块包括块头以及战斗NPC平均等级。第四章 系统的运行结果根据游戏地图编辑器的模块设计结构,本章将对各个模块的功能进行演示。我们实现了如下的功能块:地图信息文件的存取、阻挡透明信息的标记、NPC的布置、关键路径信息的设置、雷区的设置等。系统总体界面如图4-1所示,包括菜单栏、按钮栏、小地图、索引窗口和状态栏。图4-1 地图编辑器总体界面4.1地图信息文件的存取 地图信息文件的创建或读取是地图信息编辑的开始,地图信息文件的保存是地图信息编辑的目的,本节将展示这一过程。4.1.1新建地图若尚未有创建好的地图文件,则可以通过新建地图功能来新建一张无数据的地图。新建地图的界面如图4-2所示。图4-2 新建地图界面新建立一张地图需要设置新建地图的ID,以及地图背景图片的路径,然后点击确定即可新建地图,结果如图4-3所示。地图背景图片导入完毕后将自动显示划分好的菱形网格,地图的缩略图也将在小地图窗体显示。可通过鼠标点击小地图或者键盘来改变地图的显示区域。图4-3 新建地图结果4.1.2打开地图若已有保存过的地图信息文件,则可以通过打开地图功能来打开一张保存过的地图。打开地图界面如图4-4所示。图4-4打开地图界面打开地图界面需要设定地图的背景图片路径及地图信息文件的路径。地图的背景图片和文件信息是分离的,便于目录的调整。打开结果如图4-5所示。图4-5打开地图结果4.1.3保存地图信息文件保存地图信息信息文件可通过保存或者另存为功能来实现,若有已打开的地图信息文件,则选择保存可覆盖原文件。选择另存为则可以将地图信息文件另存。保存过程如图4-6所示。地图信息文件的后缀名为.map。图4-6保存地图信息文件4.2阻挡透明信息的标记 阻挡信息用于标记不可行走的区域,透明信息用于标记人物应该半透明的区域。本节将展示标记的过程。4.2.1阻挡信息的标记 在功能按钮栏选中阻挡,将会出现一个红色菱形块跟随鼠标移动,菱形方块的大小可通过数字键15进行调整,将鼠标移到要标记的区域,点击左键即可标记为阻挡区域,点击右键可将阻挡标记清除。标记结果如图4-5的红色区域所示。4.2.2透明信息的标记在功能按钮栏选中透明,将会出现一个绿色菱形块跟随鼠标移动,菱形方块的大小可通过数字键15进行调整,将鼠标移到要标记的区域,点击左键即可标记为透明区域,点击右键可将透明标记清除。标记结果如图4-7的绿色区域所示。图4-7 透明标记4.3 NPC的布置布置NPC需要进行NPC模板表、NPC实例表和NPC资源文件夹的路径的设置。设置完毕之后才能进行NPC数据的导入、编辑和导出。本节将展示布置NPC的过程。4.3.1导入NPC数据通过菜单栏选择导入NPC,设置NPC模板表、NPC实例表和NPC资源文件夹的路径(如图4-8所示),点击确定。如果有与当前打开地图的ID相符合的NPC数据,NPC将会显示在地图中(如图4-9所示)。同时将会显示所有的NPC的索引,可通过索引来编辑NPC数据。4-8 设置NPC相关文家里路径图4-9 导入NPC结果4.3.2编辑NPC数据在功能按钮选中NPC,将会有一个蓝色菱形块跟随鼠标移动,如果左键点击在未布置NPC的网格上,将打开设置NPC属性的窗口,输入NPC模板表ID之后点击刷新,NPC的属性将自动被模板数据填充,编辑可编辑的NPC属性之后点击确定,即可在鼠标点击的位置布置一个新的NPC。如果左键点击在已布置NPC的网格上,也会打开设置NPC属性的窗口,窗口将显示该NPC的属性,可对其进行编辑。也可通过双击NPC索引来打开设置NPC属性的窗口对NPC进行编辑。设置NPC属性的窗口如图4-10所示。如果右键点击在已布置NPC的网格上,可以对已布置的NPC进行删除。删除提示如图4-11所示。4-10设置NPC属性4-11删除NPC提示4.3.3导出NPC数据通过菜单选择导出NPC数据可将NPC实例表导出,保存到指定的目录下。如图4-12所示,导出的数据为XML格式。图4-12 NPC实例表保存过程4.4关键路径信息的设置关键路径信息包括关键路径点和关键路径连线。本节将展示设置关键路径信息的过程。4.4.1关键路径点的设置通过功能按钮选择关键路径点,将会出现一个浅蓝色的菱形格跟随鼠标移动,通过左键点击菱形网格可布置一个关键路径点,右键点击已布置的关键路径点可将其删除。布置的效果如图4-13所示,每个关键路径点为一个标有“寻”字的网格,网格上还有该关键路径点的索引值。图4-13关键路径点布置效果4.4.2关键路径点连线的设置通过功能按钮栏选择关键路径连线,将出现一个小黄点跟随鼠标移动,通过左键选中一个关键路径点(如图4-14所示),再左键点击另一个关键路径点,即可将这两个关键路径点连通起来,如图4-15所示。图4-14关键点1被选中图4-15关键点1、2被连通通过右键选择一个被连通的关键路径点(如图4-16所示),再右键选择与之连通的关键路径点,即可将这两个关键路径点之间的连线去处。图4-16选中要删除的关键路径点4.5雷区信息的设置雷区信息的设置需要先导入雷区信息实例表,该表为XML格式。本节将展示雷区信息设置的过程。4.5.1雷区文件的导入通过菜单栏选择导入雷区文件,可将雷区实例表导入,导入过程如图4-17所示。图4-17雷区信息加载4.5.2雷区的编辑雷区实例表导入后,选择功能按钮栏的布雷,左键点击地图上的一点,然后移动鼠标,再点击鼠标左键,可在地图上画一个矩形,该矩形即雷区的区域,如图4-18所示。图4-18 雷区布置 左键点击雷区内部,即可打开编辑雷区的窗口,如图4-19所示,可以对雷区的各种属性进行编辑。图4-19雷区属性编辑窗口 右键点击雷区内部,即可对已布置的雷区进行删除,如图4-20所示。图4-20 删除雷区确认第五章 结论与展望游戏是一个虚拟的世界,这个虚拟世界的地图功能需要由一个游戏地图编辑器来实现以及承载。本文对二维网页游戏地图编辑器开发的各个主要部分做了设计和实现。游戏策划通过游戏地图编辑器,可以方便的制作出自己想要的游戏地图,以及实现对应的部分功能,例如通过鼠标进行雷区信息设置,就可以对在游戏中“踩地雷”的结果进行设定。这种直观的设定形式,极大的方便了策划的地图设计工作,同时也为程序员节省了十分可观的时间。游戏地图编辑器使地图信息变得直观、易修改,并且提高了游戏开发的效率。本文依托Adobe公司最新的RIA技术15,设计和开发了二维网页游戏的地图编辑器,取得的主要成果如下:(1) 设计了地图信息文件的格式,对地图信息文件进行保存和读取。(2) 实现了对游戏地图信息的编辑,包括地图的阻挡透明信息、NPC布置信息,关键路径信息和雷区信息。(3) 实现了友好的程序界面以及便捷的操作,方便了游戏策划的使用,使得地图信息直观的展现在眼前。在本文中,我们的目标是建立一个基于Action Script语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京老年医院招聘2人笔试模拟试题及答案解析
- 2025年网络传播策划师综合水平评估试卷及答案
- 2025广西玉林市机电工程学校招聘编外教师11人考试备考题库及答案解析
- 2025辽宁省地矿集团面向校园招聘80人考试备考试题及答案解析
- 2025云南省楚雄州元谋县选调教师(10人)笔试参考题库附答案解析
- 倡导绿色发展理念融入文化产业发展
- 用户权限设置保障操作安全
- 医学影像质量控制课件
- 2025北京中交集团暨中国交建国际直营业务事业部、海外工程分公司招聘9人考试备考试题及答案解析
- 保额销售传承版
- 2025年湖北省中考道德与法治试卷真题(标准含答案)
- 船舶公司保密管理制度
- GB/T 45681-2025铸钢件补焊通用技术规范
- 农村户厕卫生标准
- 公司人事财务管理制度
- 生产保密文件管理制度
- 胖东来库存管理制度
- 2025-2030中国小分子肽市场供需调查及发展趋势预测报告
- 《无人机概论》高职无人机应用技术专业全套教学课件
- 2025年湖北联投招聘笔试冲刺题(带答案解析)
- 动静能设备管理制度
评论
0/150
提交评论