Tiled地图编辑器tiledmap怎么用用

地图编辑器 - 搜狗百科
地图编辑器
地图编辑器是一种的游戏地图制作工具,它辅助设计和输出地图数据,包括创建、编辑、存储和地图数据。
地图编辑器
创建、编辑、存储和地图
地图编辑器读取和使用游戏资源,并按照游戏程序规约输出相应格式的地图数据,游戏程序(客户端和服务器)通过地图数据构建游戏场景,将其呈现给用户。地图编辑器的主要功能包括 和地图两部分。 主要包括地地表生成、地图物体摆放、地图属性设置和地图 ;地图资源管理包括地图物体编辑、地图物体属性设置和资源。这里的地图物体是指用于表示地表、树木、房屋、精灵等摆放在游戏地图上的图片和动画资源。在地图编辑器中,开发人员可以方便地摆放地图物体、构建和修改地图场景、自动判断遮挡关系以及设置地图事件等。地图编辑器通过其直观和简易的操作来简化地图的过程 ,地图编辑器的资源管理功能使得地图资源可以在多个地图中复用,极大地减少 和修改的工作量。因此,很多游戏开发商在项目初期开发出项目的地图编辑器,用于提高游戏的开发效率,减少地图搭建阶段所花费的时间,以缩短项目周期。地图编辑器用于编辑游戏中 的工具软件。包括(场景的外观效果),地形设计(对游戏角色的行动力影响、视觉影响等),扳机(或称为触发,事件等)设计(玩家的特定操作对游戏进程的影响)等基本组成部分。很多地图编辑器是制作群的内部开发工具,不对外公开;一些地图编辑器随游戏的主程序一同发售,如《 》、《 》、《 》等,给游戏带来很多可扩充性因素,大幅提高了游戏的可玩性,持续性和知名度。也有的游戏的地图编辑器单独发售,如国产知名游戏《 》的地图编辑器《 》,但是反响并不热烈。
地图编辑器一般建立在上面的,编辑器的对象模型和资源格式受到游戏引擎限制,由于不同的游戏引擎约定不同的数据格式,所以构建在特定游戏引擎的地图编辑器通常无法跨越多个引擎运行。如的编辑器所制作的游戏地图仅适用于《魔兽争霸》游戏,UnrealEd制作的地图仅适用于建立在unreal3引擎上的游戏。因此,游戏开发公司要么使用游戏引擎提供的编辑器,要么就必须自己开发编辑器。由于地图编辑器能够有效地减少游戏地图的制作成本,一般游戏开发公司在游戏开发初期就开发出自己的游戏地图编辑器,如、《》、、《魔兽争霸》、《 》等游戏,一些游戏引擎也推出相应的地图编辑器,著名的unreal3引擎即提供了功能强大的的编辑器UnrealEd。地图编辑器从本质上来看,其只是运用对游戏 的模拟实现,它也可以运用在其它图形应用领域上用于模拟仿真现实环境。国内外一些学者也对此做了一些较为深入的研究,可以利用场景编辑器制作虚拟交通场景, 用于地形环境模拟仿真, 将编辑器应用于城市规划或用于演练等。
Tile Studio
(TS)Tile Studio 是一款基于Delphi平台、采用开发的开源通用区块地图编辑器。Tile Studio的程序体积很小,但其功能强大,除了用于创建和编辑地图,最大的特点是可以编辑区块。除此之外,Tile Studio还支持自定义地图输出格式和地图层次划分等功能。但Tile Studio仅支持2D地图,并不支持。另外,Tile Studio没有提供的功能,每次创建一个地图都必须重新导入和编辑全部区块资源,在使用上不方便。
Tiled是基于Java/Qt的开源区块地图编辑器,Tiled支持2D和2.5D地图及多种区块类型,它将地图保存成一个,借助xml的特性使地图可通用于各种游戏平台。Tiled还支持通过 来读写地图数据,用户可以方便地自定义地图的输出格式。Tiled给每个区块命名,并通过区块集(tileset)提供了简单的区块。Tiled同样支持地图分层,并且可以为每个层次添加各种属性。除此之外,Tiled还支持自定义对象 ,用户可以在该层上添加各种数据,这对地图的事件触发设置提供了较好的支持。另外,Tiled将所有图片都以最小单位区块的大小进行切割,以牺牲地图美观来避免深度排序和图片偏移等复杂的计算。
Mappy也是基于区块的通用地图编辑器,而且支持2D和。在2D方面,Mappy的功能和Tiled类似,但没有区块管理的功能。Mappy将地图保存为FMP文件,所以使用Mappy首先要解决的问题是如何读取FMP文件。另外,Mappy虽然提供了多种开发语言版本,但相关文档缺乏,难以根据实际情况进行扩展。易操作性上,Mappy缺少快捷工具栏,使用起来很不方便,且运行速度慢,在编辑较大的地图时经常卡住。
Mepper也是基于区块的地图编辑器, 当前仅支持2D和2.5D. Mepper的功能和Tiled类似, 但它没有的支持. Mepper还支持整图地图和分块地图. 有功能比较完善的系统, 能够方便地将地图资源复用于多个游戏地图. 此外, Mepper支持复合区块, 即可以在一个区块上添加另一个区块. Mepper还自带一个边缘生成的算法, 用于支持地表边缘自动生成.上述四种编辑器中,Mepper和Tiled的功能和性能都优于其它两款,且容易操作。Tiled Studio的功能相对比较简单,适合于移动设备上的游戏开发。另外,这四款编辑器都支持区块地图,Tiled支持和菱形区块地图等多种区块类型,Mappy除了支持多种区块类型,还支持3D地图。在地图输出方面,Tile Studio, Tiled和Mepper都提供了,支持自定义地图输出格式。但上述前三种编辑器都不支持整图地图,而且区块都必须是简单结构的区块,对于超过单位区块大小的图片都必须进行切割,当然也就不支持多种类型的区块混排和深度排序。在资源管理方面,除了 Mepper则提供了功能相对比较完善的资源管理功能外, 只有tiled提供了简单的区块管理,其余两款都没有这个功能。最后, 上面列出的编辑器中,只有Mepper提供了区块边缘自动生成的功能。
扩展阅读:
词条标签:
合作编辑者:
搜狗百科词条内容由用户共同创建和维护,不代表搜狗百科立场。如果您需要医学、法律、投资理财等专业领域的建议,我们强烈建议您独自对内容的可信性进行评估,并咨询相关专业人士。
点击编辑词条,进入编辑页面mapwin和Tiled(游戏地图编辑器)使用指南
本文主要介绍目前开发游戏比较流行的两款工具mappy(mapwin)和tiled,分别介绍工具的安装、使用、优缺点分析,虽然不能面面俱到,但使用要点之处都已说明。作为开发游戏的fans们必不可少的入门指南。 一、何所谓“地图编辑器” 地图编辑器,顾名思义,就是用来编辑地图的工具,如果玩过《魔兽争霸》或是《帝国时代 2 》、《英雄无敌》的话,应该会知道这几款游戏都附有地图编辑工具,可提供玩家自行编辑地图关卡,地图编辑器就具有类似的功能。 二、mappy(mapwin)入门指南: 1.预备知识: tile:中文名字-瓷砖,呵呵,也就是平铺在某个物体表面上的单元。使用过j2me的Tile或者vc开发游戏的都知道。 playback library:回放库,支持装载和显示mapwin的FMP地图文件的库。 2.mapwin简介:
软件名称:mapwin 版本: 1.4.11 运行环境:windows 依赖库文件:libpng12.dll、zlib.dll 用途:灵活的建立2d、3d游戏的tile。 强大的回放库支持:DirectX、Allegro、OpenGL、Java、CDX、SDL、Delphi、Blitz Basic、Dark Basic、GBAMappy、Combined、GameMaker等 3.快速安装导航: 首先就是下载,作者下载的是mapwin1.4.11版。 如果需要支持PNG图片,那么就要到下载两个dll文件: zlib.dll-用于文件压缩,下载地址: libpng12.dll-libpng的window版,png图像压缩库,下载地址: 安装这两个dll文件很简单,方法就是直接复制到mapwin目录下。 4.快速使用导航: (1)第一步就是启动程序。然后File-&new map,新建一个map,设置每个tile的长宽和map包含的tile的行数和列数。
(2)根据提示进入File-&Import...,选择作为tile的图片,这样右侧会出现以前面设置的按照每个tile的长宽划分的图片tile。 (3)此时就可以使用鼠标选取tile,在map中的适当位置点击便会将此tile画在map上。使用右键可以删除map上的title。
(4)mapwin默认只有一个layer,如果要新建layer的话,可以通过Layer-&add layer实现,map上方的状态条会显示鼠标当前的位置和当前Layer的层数。 (5)map完成后,按ctrl+s保存,选择File-&export as text,将map导出为用map数组表示的文本。其中“Map Array(s) Prefix with”选项可以修改为java语言表示数组的形式:new int[][]。这样就会生成j2me中可用的代码片断,可以直接用到程序中。
5.优缺点: 优点:与tiled相比,支持2d、3d游戏,具有很多的游戏开发接口和语言;使用相应的回放库可以设置碰撞检测等扩展功能。 缺点:缺少快捷工具栏,操作速度慢。 三、tiled入门指南: 1.预备知识: Tileset:tile的集合,这是tiled管理tile的一种分组方式。每个tile有一个name来代表。 Tile的存在方式:tiled软件管理tile的方法与众不同。tile默认只保存在map中,也可以导出为.tsx文件供多个map共用。 2.tiled简介:
软件名称:Tiled 版本:0.5.1 运行环境:支持java的os 依赖库文件:无 用途:tiled地图编辑器是一种用于通用目的的编辑器。特点是比较好用,风格类似mini版的photoshop。它可以用于制作多种类型的游戏引擎需要,而且支持使用插件读写map、增加用于引擎的map格式。 3.快速安装导航: 下载,然后解压缩,可以发现tiled.jar文件,使用java -jar tiled.jar命令来运行之。 4.快速使用导航: (1)使用File-&new,进入New Map Dialog对话框,其中可以选择Map的类型,设置Map size和Tile size,这和mapwin很类似。
(2)建立map之后,系统会默认分配一个layer,但是并没有Tileset,所以选择Tilesets-&New tileset...建立tileset。输入Tileset名字后,选取“Reference tileset image”选项,浏览Tile image所使用的图片。其中的“Tile spacing”为设置Tile四边的边框,因为不常用,所以经常被设置为0。
(3)在增加了tileset后,点击左下角的按钮可以看到tile的调色板,这时便可以在调色板中选择合适的tile在map上构图了。
tile左侧的工具栏提供了快捷工具:move layer、paint、erase、fill、eye dropper(取色器)、select、缩放。而在右侧是类似photoshop的layer manger,用来新建layer、复制layer、锁定layer、隐藏layer。 eye dropper的使用方法有两种:一种是选择eye dropper工具,然后在map中选择tile;另一种方法更快捷-直接在map中的tile上点击鼠标右键。
(4)当map画好后,按ctrl+s可以将map保存为tmx文件。 (5)对map文件内容的解释:
&&&&&&&&&?xml version=&1.0& ?& &&&&&&&&&map orientation=&orthogonal& width=&32& height=&32& tilewidth=&24& tileheight=&24&& &&&&&&&&&&&tileset firstgid=&1& name=&Sewers& tilewidth=&24& tileheight=&24&& &&&&&&&&&&&&&image source=&tiledweb/files/tiles_pipes.png&/& &&&&&&&&&&&/tileset& &&&&&&&&&&&layer name=&Layer 0&& &&&&&&&&&&&&&data encoding=&base64& compression=&gzip&& &&&&&&&&&&&&&&H4sIAAAAAAAAAO3NoREAMAgEsLedAfafE4+s 6l0jolNJiif18tt/Fj8AAMC9ARtYg28AEAAA &&&&&&&&&&&&&/data& &&&&&&&&&&&/layer& &&&&&&&&&/map&
&&&&&&&&此文件表示了这个map只有一个tileset和一个layer,注意一下前面建立map和tileset时输入的数据不是所有都在这个文件中,因为使用默认的属性(如tile spacing)是不会保存在这个文件中的。 &&&&&&&&由于一个tile可以被多个map引用,所以layer的data属性值使用base64编码、使用gzip压缩的一个32位整数的数 组,它代表了tile的全局id--firstgid。每个tile内部使用自己的local id,而firstgid作为在多个map中区分tile的标识。 &&&&&&&& 注意此软件没有导出为map数组的功能,只能使用View-&Show Coordinates显示坐标。 5.优缺点: 优点:易用。使用xml规范作为map文件的书写规范有利于用户自定义修改和功能的扩展。 缺点:缺少与游戏开发语言的接口,还需要进一步的开发扩展。
四、参考资源: mappy官方网站:http://www.tilemap.co.uk/index.html Tiled官方网站:http://tiled.rpgdx.net/index.html zlib官方网站:http://www.zlib.net/ libpng官方网站:http://gnuwin32.sourceforge.net/packages/libpng.htm
谢谢。有用
这个可以关注!感谢分享推荐这篇日记的豆列
······【Cocos2dx工具Tiled工具使用】
【Cocos2dx工具Tiled工具使用】
写在前面——
如果转载请注明出处,谢谢大家支持
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
——Forward
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&我的微博——
QQ技术交流群——forTheDream()
地图的编辑
&&&&在之前的博客中,Forward有提到过一个比喻,游戏开发就好像画家画画,所有游戏中的元素需要一个承载体,画面的承载体是画纸,游戏的承载体是地图(场景)。那么接下来我们就来学习一下一个比较经典的地图编辑器——Tiled。(下载安装过程,这里略去,网上的相关资料略多,这里不再赘述)。&&&&&&
&&&&首先来看看Tiled主界面——
我们需要新建项目,如下图2所示,选择新建项目:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&弹出图3所示对话框,我们在这个对话框中对目标地图开始一个初始的设置。
&&&&&&&&&&&&&&&&&&&&&&&&&&
其中,地图选项组中的跨度和高度指的是你编辑获得的地图的横向和纵向的格子数目,而块大小选项组中的宽度和高度则指的是每一个块的像素宽和像素高。
&&&&这里需要说明的是,因为Forward编辑的目标地图是一个768&1024分辨率的地图,每个格子大小为32&32像素的正方形格子,因此,Forward选择地图大小选项组中的宽度和高度分别为24和32。当然,根据项目的需要,我们自己来设定格子数目。
&&&&我们在一个初始的地图图层上放上自己的图块对象就可以完成一个简单的地图。但是我们在此之前需要将自己的图块导入到工程中,所谓的图块其实就是一张png或者jpg类型的图片而已。如图4所示,我们选择菜单栏地图选项并在他的下拉列表中选择添加一个新图块——
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&如图5所示,在弹出对话框中的名称一栏填入我们对新图块的命名,图像一栏可以通过“浏览”来选择资源路径,点击确定完成新图块的导入。
&&&&&&&&&&&&&&&&&&&&&&&
&&&&图6,资源导入成功。
导入新图块完成之后,我们就可以像使用画刷一样来使用新图块中的资源来绘制我们的地图了。
&&&&编辑过程不再说明,来张编辑效果图把——
&&&&&&&&&&&&&&&&
&&&&这样一个可视的地图就展现在我们面前了,但是这样的地图在程序中怎么加载呢?加载到程序中又该怎么去使用呢?在程序世界中应该是一个一个对象的集成的,这里如果只是用这么一张图块创建一张地图的话,加载的程序中几乎没什么用。我们需要在它的基础上在创建一个对象层,而这个对象层上我们会布置上对应的对象,这样当我们在程序中去加载这张地图时就可以通过解析对象层来获得一张对象地图,在游戏开发中就可以操作各个对象去完成预期的效果
&&&&如下图8,在图层窗口右键点击创建一个对象层——
&&&&&&&&&&&&&&&&&&&&&&&
&&&&有了这个对象层之后呢,我们就可以在对象层上去创建自己需要的对象了,选择工具栏上对应的工具。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&Forward这里需要的地图中的每个对象都是正方形的,所以选择如图9所示。OK,选择好对象创建工具,开始创建对象。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&Tiled支持一个对象占用多个瓷砖块,这个可以根据自己游戏的需要去完成。并且我们可以根据需要对每个对象进行一些属性的设置。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&好的,保存地图得到tmx地图文件一张,这里需要说明的是,其实后面的那层对于程序中来说其实不是必需的,我们大可以把那一层删掉,只保留对象层,但是为了方便后续地图再编辑修改,我们也可以将后面一层保留。
地图的加载使用
&&&&有了前面创建的地图,我们怎么在程序中来使用它呢?带着这个问题,我们继续后续的学习——
&&&&在cocos2dx中我们可以找到一个CCTMXTiledMap类,这个类可以帮助我们完成对tmx格式地图文件的创建和操作。
pTMXTiledMap = cocos2d::CCTMXTiledMap::create("GameSceneMap.tmx");
this-&addChild(pTMXTiledMap,0,1);
通过create接口创建,并且add到场景中即可,这样我们就成功将这张地图加载到程序中了。这里需要说明的是,如果你按照Forward前面提到的将后面的背景层保留,那么我们看到的是如图13所示的结果。
可以明显看到,场景中只有一个对象,那就是这张地图,而我们几乎从这张地图上不能获得我们所预期中的对象属性。
但是如果你将背景层删掉了,我们得到的结果是什么呢——地图确确实实加载成功了,但是我们的场景中什么都看不到,别灰心,我们除了创建加载这样地图外,还需要一些额外的工作去做,那就是解析tmx地图中的对象属性。
cocos2d::CCTMXObjectGroup* group =
pTMXTiledMap-&objectGroupNamed("Objects");
cocos2d::CCArray* objects = group-&getObjects();
cocos2d::CCDictionary* pDic = NULL;
cocos2d::CCObject* pObject = NULL;
CCARRAY_FOREACH(objects, pObject)
pDic = static_cast(pObject);
ParseObject(pDic);
查看上面一段代码清单,操作过程是这样的。通过objectGroupNamed接口根据我们编辑tmx地图的时候给对象层起的名字获得对象组,然后通过objects接口我们可以获得这个层上的所有对象,这些对象保存在一个Array中,然后我们就可以对每个对象进行逐个解析了(说明一下的是这里我们将每个Object转换为CCDictionary来处理,这样地图上的这个对象属性就以键值对的方式保存在对应的CCDictionary中了)。
那么针对每个对象,我们是如何解析的呢?
(strcmp(pDictionary-&valueForKey("name")-&getCString(),"Tree") == 0)
Tree* pTree = new
pTree-&initWithFile("tree.png");
atoi(pDictionary-&valueForKey("x")-&getCString());
atoi(pDictionary-&valueForKey("y")-&getCString());
pTree-&setAnchorPoint(ccp(0,0));
pTree-&setPosition(ccp(x,y));
pTMXTiledMap-&addChild(pTree);
ObjectManager::getInstance()-&AddObject(pTree);
我们通过对比对象name值判定如果是树木,就创建一棵“树”并设置其属性之后添加到场景中。
好了,其他对象的解析过程大致类似,这里我们就不再赘述了,华丽丽来一张解析之后的运行效果图吧~
&&&&&&&&&&&&&&&&
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 tiled地图编辑器用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信