地图编辑器设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学士后
Android 工程师就业冲刺阶段项目
忍者突袭项目(地图编辑器)详细设计书
编写人:北大青鸟
编写日期: 2014 年 6 月
文档修订记录
序号修改人审核人修改日期备注1
2
3
1. 文档介绍
1.1. 文档目的
提供地图编辑器的详细设计,对后期的代码开发提供相关的指导和约束。
预期读者:游戏分析人员和开发人员。
1.2. 文档范围
本详细设计书主要是描述地图编辑器的具体实现,涉及的范围有:
1.图形模块
2.逻辑模块
2. 程序系统结构
2.1. 程序划分
序号模块名称主要功能
1 图形模块提供编辑地图的设计窗口
2 逻辑模块根据窗口中的地图设计生成地图文件
3. 图形模块
3.1. 需求概述
第一阶段的主要功能是实现地图编辑器的编辑窗口
3.2. 功能描述
提供一个编辑窗口,进行地图的编辑,编辑窗口上方有一个菜单栏,可以选择菜单栏中的菜单项使用各功能。可以新建地图、载入图元、生成地图文件、编辑或者删除、生成单元格等。如下图所示:
地图编辑器示意图
3.2.1. 主要使用类描述
包名类说明
com.xzh.mapeditor MapEditor.java 生成窗口的主体结构com.xzh.mapeditor LineDialog.java 生成网格时弹出的对话框com.xzh.mapeditor EditPanel.java 设置每个窗口的背景划线
3.2.2. 程序实现
MapEditor.java 类:
initMenu 方法:加载菜单,设置编辑模式选项组
initLayout 方法:设置主界面布局,设置滚动条最大、最小刻度,设置监听器。
EditPanel 类:
paint 方法:设置窗口背景,划网格线
LineDialog 类:
initPane 方法:初始化对话框中显示的内容
actionPerformed 方法:对点击事件进行处理
3.2.3. 其他说明
显示模块是使用java中的Swing实现的,主要有一个编辑窗口和一个显示窗口。显示窗口显示地图中的图片元素,编辑窗口可以编辑地图。
4. 逻辑模块
4.1. 需求概述
逻辑模块主要处理显示把图片元素添加到编辑窗口指定位置,读取图片元素和生成地图文件等。
4.2. 主要使用类描述
包名类说明
com.xzh.mapeditor MapEditor.java 生成窗口的主体结构
4.3. 程序实现
MapEditor 类:
onOpenElement 方法:从工程中的 res 目录下读取图片文件,把图片加载到显示窗口。
onLoadElement 方法:从 element 文件夹下读取配置文件,根据配置问价加载图片。
onMapFormat 方法:地图格式另存
onSaveDialog 方法:弹出保存地图文件对话框
onMapSave 方法:保存地图文件
mouseClicked 方法:获取鼠标点击事件,根据点击事件位置,放置图片
addLabel 方法:添加图片坐标和图片类型到 List 中。
checkMain 方法:判断是主图元还是依附图元
checkPaste 方法:判断两张图是否可以贴到一起
showActiveLabel 方法:显示当前 editpane 部分需要显示的 label
restoreTempMap 方法:未存储就退出,默认存储为 temp
4.4.其他说明
地图文件中的信息存储格式为: x,y,t,l&x,y,t;x,y,t;#x,y,t,l。地图存储时,主要以 x 轴为主线,先存储在 x 轴上坐标不会重叠的图元作为 x 轴的主图元,在 NinjaAdventure 游戏中我们采用桥面和吊杆图元作为主图元;而另外的道具、桥墩、 npc 等,我们都根据其 x 轴坐标将其依附于主图元存储,将其存储在主图元后面,依附的主要根据是与主图元在 x 轴坐标上重叠或距离远近。在存储格式中, x、 y 主要代表图元的 x 轴与 y 轴的坐标, t 代表图元种类(用了什么图), l 代表主图元长度,‘ &’的含义是主图元与依附图元的区分间隔符,‘;’的含义是依附图元之间的间隔符(一个主图元可能有多个依附图元,如一段桥上即有道具又有 npc),‘ #’代表两个主图元之间的间隔符。下面是一段地图数据的示例: