地图编辑器设计文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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),‘ #’代表两个主图元之间的间隔符。下面是一段地图数据的示例:

相关文档
最新文档