• 2009-05-30

    wxsr 45度地图编辑器 总结

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://wxsr.blogbus.com/logs/40197344.html

     

    版本:v2.0 
    作者:吾系衰人(wxsr)
    Email:wxsr2008@126.com

    视频演示地址

    http://v.youku.com/v_show/id_XOTYxNzQ3MjA=.html
    密码是 wxsr


    特性:
    1.共享资源库,
    2:地形,元件,地图的层次结构
    3:所有文件都可增删保存再编辑;
    4:自动深度排序;
    5:地图实况测试;
    6: 元件旋转
    7:场景旋转
    8:元件可旋转视角后添加到场景。
    9:地图编辑过程中可以增删区域。
    10:笔触清楚,网格显示,物品分栏显示;
    11:导入背景
    12:小地图预览

    功能特征

    采用分层处理
    将地图要素拆分为:地形,元件,地图3大模块
    模块间各自独立编辑,保存,重编辑。完成后于地图模块继承
    地形:作为地图的区域模块。其特征主要在于预先指定好地图的编辑范围。
    适用于预先根据背景资源进行量身绘制编辑地图区域。
    元件:作为地图的物品模块。可根据于场景中的特性,细分为:阻碍型,挂件型,地表型。三种形式。
    每类元件文件都有自身属性。如,于45度坐标中的(高,宽,长)及交互,是否为墙壁等。
    阻碍类型元件:完成编辑后不能于其占用区域内行走或摆放物品。
    挂件类型元件:其占有区域下依然可以防止元件,且其深度冗员高于阻碍元件。
    地形类型元件:作为地表层的组成元件,其深度在阻碍及挂件元件之下,一般作为背景形式错在。

    资源库管理:点击菜单--》设置 面板(或者点击seting按钮),就可以增加删除swf资源库,资源库读取后将会自动将所有带链接名的元件显示在tags 列表下。本编辑器的资源库

    是公用的,也就是说,只要你编辑完一个元件,你可以在任一地图上使用这个元件
    。但要注意的是资源库更新时,以往编辑的元件图像也会跟着更新,但数据于地图中是不变的,这样做是为了避免
    因为后边更新了一个元件的数据,导致之前编辑地图走样,数据错乱等。这部分特征只会体现在地图文件上,因为四度文件是直接将所有数据拷贝一份写入文件中去的,而元件,

    则因为可以冲新编辑故不会有这方面的问题,只要在更新完资源库后
    重新修改原有的元件文件即可。
    再者要注意的是每个资源库的文件名必须唯一。如果是团队开发的,可以将共享的资源库放到网上邻居,然后全部选择哪个资源从而达到资源同步的目的,也可以通过svn等方式同

    步资源库。

    在绘制地形上,本编辑器采用的是自定义绘制模式,使用者只要根据自己需要绘制地形区域即可.
    这样做的好处在于最大限度的缩小数据的大小,以及保存后当作可选文件形式在创建地图时供使用者选择。

    元件及场景都具有旋转编辑功能。
    编辑元件时请先从tags lists列表中双击或者拖入你要选择的素材。
    然后根据自己需要于下边的属性栏中设定其属性。哟啊注意的是,当我们创建一个元件
    后,我们需要先设定区域,该区域是45度下物品与地面接触的3维接触区域
    。不要图片有多大就绘制多大,那是错误的。然后按空格键为其4个视角下都调整坐标偏移值
    按空跟键后系统会自动将原先绘制好的区域旋转一个视角的。然后我们需要为个元件设定他们的3维高度。
    最后要注意的一点是,必须要回到第一视角下保存该文件,不然后边应用时会出错。

    当我们预先编辑完一批地形跟元件后我们就可以创建属地图模块了。
    在创建地图模块的对话框中我们可以看到。地形的选择项,用户如果没有选取原先编辑的地形系统会自动默认创建一个
    菱形区域,当然你可以选择以前编辑好的地形或者,修改45度视角下的行,列。不要担心生成后就没办法再编辑。
    在地图模式下把工具栏里的lock勾选项去点就可以通过绘制清楚选项来编辑了,但要注意的是编辑后记得要把lock沟回去,从而避免不必要的问题。
    当我们创建完地图后,就可以从items列表里选择一个元件拖进场景。(注意双击操作是进行该元件的编辑,会切换到该元件的的编辑状态,在没保存地图文件的情况下,是不可以

    还原地图文件的)当我们选定了一个元件后可以在上边的预览框里反转元件的视角。然后再拖进场景,那样得到的就是你所看到的效果了。非常简单轻松就可以创建出你想要的效


    当然你也可以不旋转元件的视角而直接通过按’a‘键来旋转场景的视角,同样可以达到那样的效果的。
    编辑工具栏里提供了多个小功能按钮,勾选其可以方便工作。在已经感觉效率比较慢时,如果用户之前是通过北京绘制地形插入地图数据的话,用户可以把网格栏去掉,而直接导

    入背景图,,当用户编辑元件时可以把colorGround的勾选去掉,或者把playground勾选去掉。那样就看不到场景上的阻碍及挂件物品了,背景物品的可是状态可以通过勾选

    background按钮来实现

    所有模块都可以通过快捷键‘S’或者菜单栏--》文件--》保存 指令来保持文件方便以后重编辑文件。
    菜单栏里还提供了测试指令,使用者可以点击该指令选择一副已经编辑好的地图文件,进行移动,观看等效果。
    测试指令已经包含本系统专属的a×算法。及深度排序效果,所以观看到的效果将是应用到场景的实际效果。
    菜单栏有创建指令,用户也可以通过资源库下边的+号按钮创建当前打开的不同类型文件。 通过减号用户可以删除选中的该文件。用户也可以打开seting按钮,对资源库进行增删

    ,拷贝数据保存地址,用户可以直接预览所以数据文件。
    用户可以在windows下拷贝文件,重命名等,等再次打开编辑器后拷贝的数据,或重命名的,或删除的 数据将 自动更新列表。重而达到数据备份,同步等功能。

     

     

    v

     

     

     

     

    就 

     

     

       


    收藏到:Del.icio.us




    评论

  • 挺有意思的,我在做的项目也涉及到flash中的iso地图,我说几点我遇到的问题:

    1. 粗看了一下,这个地图编辑器支持多层吗?比如游戏事件触发器最好有一个独立的层一起放在地图编辑器里面。

    2. 很想知道这个编辑器最后导出的数据格式。我们的团队没有这么好的工具,所以我们使用tiled,做出tmx格式文件,再写了一个转换程序,生成int<vector>的swf。这样客户端计算速度很快,数据文件最小,但是工序麻烦了点。

    3. "4:自动深度排序;"想知道这点的实现算法

    4. 感觉渲染地图比生成地图复杂。关键在内存消耗上,特别是遇到大的题图。 http://jhy.91.com/ 的地图渲染就做的比较失败,一个flash客户端跑起来内存用得比wow还多。

    希望能和你多多探讨。我的msn是 arkytan@hotmail.com
  • 有个疑问,你能解答一下吗?
    就是当鼠标在地图编辑器的45度网格上移动时,可以得到鼠标的坐标值, 然后是怎么判断鼠标具体落在哪一个tile上呢?

    当鼠标在一个tile的菱形区域内移动时,如何计算出是在这个tile中,而不是在周围的其他tile中呢?

    谢谢!!
  • 地图编辑器一般只用于地图数据的合成及还原~瓷砖图案这类基本都是外部编辑软件编辑完成,然后存放到swf库里边再还原的。生成的数据文件只要记录坐标,链接名,深度等还原的必要信息即可
  • 我也想写一个地图编辑器,你能告诉我,对于每一个瓷砖图案要怎么存放呢?如果每个瓷砖图案都存成一个文件,那岂不是一个地图编辑器会有很多很多的瓷砖文件?如果是集中存放,要怎么处理比较好呢?还有,如果这些瓷砖图案的文件不能用画图这样的图片处理软件编辑的话,那我们要怎么来编辑这些瓷砖的图案呢?难道写一个地图编辑器还要附带写上类似于画图软件这样的功能吗?那岂不是很麻烦啊。