Tiled缺氧地图编辑器怎么用用

中国领先的IT技术网站
51CTO旗下网站
基于Cocos2D-X的砖块地图教程
通过文章你将学习如何添加砖块地图到游戏中,跟着玩家滚动地图,并使用对象图层。也会学到如何使用地图编辑器去创造砖块地图本身。同时还有如何在地图上创造碰撞领域,如何使用砖块属性,如何创造可收集的道具并动态地修改地图,以及如何确保你的忍者不会吃太多东西。
作者:Jorge Jordán来源:gamerboom| 10:58
这是Cocos2D-X砖块地图教程系列,你将在此创造一款有关沙漠中的忍者寻找美味的西瓜的简单游戏。
需要注意的是该教程是关于Cocos2D-X,即Cocos2D-iPhone的跨平台C++移植。所以你在此编写的代码将适用于iPhone,Android和更多平台上!
在本系列文章的第一部分中,你将学习如何添加砖块地图到游戏中,跟着玩家滚动地图,并使用对象图层。你将学到如何使用地图编辑器去创造砖块地图本身。
而第二部分是关于如何在地图上创造碰撞领域,如何使用砖块属性,如何创造可收集的道具并动态地修改地图,以及如何确保你的忍者不会吃太多东西。
注:本篇教程类似于Cocos2D-iPhone教程。
让我们开始创造砖块地图吧!
对于这一教程,你需要安装最新的Cocos2D-X版本(游戏邦注:在写本篇教程的时候更新到2.1.4)。如果你还未拥有最新版本的Cocos2D-X,先下载它并在终端运行如下命令去安装模版:
cd&~/Downloads/cocos2d-x-2.1.4&./install-templates-xcode.sh&-f&-u&
然后使用iOS\cocos2d-x\cocos2dx模版在Xcode创造一个新项目。点击Next,将项目命名为TileGame,将项目设置为Universal,点击Next然后点击Create。
你将在这一项目中使用ARC,所以如果这是你第一次听到ARC,我会鼓励你先了解下它。模版并不是默认使用ARC,但幸运的是,我们能够轻松地进行 修改。前往Edit\Refactor\Convert to Objective-C ARC。往下拉并只选择文件main.m,
AppDelegate.cpp, HelloWorldScene.cpp,然后点击Check并完成向导的步骤。
select targets(from raywenderlich)
创建并运行,然后确保一切都还正常运行&-你应该能够看到标准的&你好世界&屏幕。
接下来下载游戏资源的压缩文件。压缩文件包含如下内容:
你将面向玩家对象使用的精灵。
一些伴随着cfxr效用所创造的音效(你将会在教程中用到)。
一些伴随着Garage Band所创造的背景音乐。
你将用到的一些砖块设置&-这将伴随着你将使用的地图编辑器,但我认为我们能够更轻松地将其与其它内容包含在一起。
一些额外的&特别&砖块,将在之后进行详细解释。
当你下载了资源后,打开它并将TileGameResources文件夹拖到项目的Resources群组中。在项目菜单里,右击 Resources群组,并选择Add Files to
&TileGame&&选择Resources/TileGameResources文件夹,核实选中了Copy items into
destination group&s folder (if needed)以及Create groups for any added
folders,然后点击完成。
如果一切顺利的画,所有的文件都将出现在你的项目中。
你的项目应该如下:
tile game(from raywenderlich)
现在我们将开始创造地图!
Cocos2D-X支持基于开放源Tiled Map Editor去创造地图并将其以TMX格式进行保存。
下载Tiled Map Editor。在编写本篇教程的时候,其最新版本是0.9.0。
然后运行Tiled,前往File\New,并如下填写对话内容:
new map(from raywenderlich)
在定向区域中,你可以在Orthogonal或Isometric间做出选择。在此你将选择Orthogonal。
接下来你将设置地图的大小。记住这是在砖块中,而不是像素中。你将创造一个较小的地图,所以在此你应该选择50&50。Tiled将基于像素呈现给 你总体地图的大小,即在New Map对话的最底部。这是在长度和宽度的基础上将地图大小(50个砖块)乘以砖块的大小(32像素)所计算出来的。
最后,你将明确宽度和高度。你在此所选择的是取决于美术人员所设置的砖块。对于本篇教程,你将使用一些伴随着Tiled编辑器的样本砖块,即32&32规格,选择它便点击OK。
接下来你必须添加砖块设置去绘制你的地图。在菜单栏上点击Map,然后关掉New Tileset&,并如下填写对话框内容:
new tileset(from raywenderlich)
为了获得图像,点击Browse并导航至你自己的TileGame/Resources/TileGameResources文件夹,然后选择你之前从资源压缩中下载的tmw_desert_spacing.png文件,并将其添加到项目中。它将自动根据文件名填写名字。
你可以将宽度和高度设置为32&32,因为这也是砖块的大小。对于边缘和间隔:
边缘是关于在Tiled开始寻找真正的砖块像素前应该为当前的砖块略过多少多少像素(包括宽度和高度)。
间隔是关于Tiled在明确了实际砖块像素并转向下一个砖块数据之后应该前进多少像素(包括宽度和高度)。
如果你着眼于tmw_desert_spacing.png,你将发现每个砖块都围绕着一个1像素的黑色边缘,这也解释了边缘和间隔为1的设置。
tile(from raywenderlich)
当你点击OK时,你将看到砖块呈现在Tilesets窗口中。现在你可以开始绘制了。点击工具栏的Stamp Brush图标,然后点击地图上的任何一个位置去放置一个砖块。
tileset(from raywenderlich)
所以继续绘制地图&-尽可能发挥创造性!确保添加至少一些建筑到地图上,因为你在之后将需要一些碰撞内容。
tileset(from raywenderlich)
为了更轻松地绘制内容,你可以着眼于一些快捷方法。以下是最常用到的一些方法:
你可以在Tileset选择器中围绕着一系列砖块拖曳一个盒子,并同时放下多个相邻的砖块。
你可以通过View\Zoom In和View\Zoom Out进行放大和缩小。
z键将在基于Stamp Brush工具编辑地图时进行旋转。
在一些新功能中你可能会注意到Mini-map。这是一个很棒的功能,它让你能够看到一个迷你地图!着眼于我在Mini-map最下方的迷宫中的糟糕尝试。红色盒子代表你在主要编辑窗口中看到的区域。
tileset(from raywenderlich)
当你在阅读下一个区域中的滚动时牢牢记住这一Mini-map视图。
需要注意的是这一教程的资源是出现在地图前的&&所以如果你很懒的话便可以直接利用它。如果你这么做,你应该在Tiled打开地图并明确它是如何设置的。
当你完成地图的绘制时,在Layers视图中双击Tile
Layer,将名字改为Background。然后点击File\Save,并将文件保存到TileGame项目中的TileGame \Resources\TileGameResources,将文件命名为TileMap.tmx,并覆盖现有的文件。
你将在之后使用Tiled做其它事,但是现在让我们将这一地图带进游戏中!
添加Tiled地图到Cocos2D-X场景中
打开HelloWorldScene.h,在#include &cocos2d.h&之后添加如下内容:
using&namespace&cocos2d;&
这能指导编辑器去使用cocos2d命名空间,所以你不需要为所有内容加上cocos2d的前缀。
然后添加以下内容到类定义中,即在花括号之后:
private:&CCTMXTiledMap&*_tileM&CCTMXLayer&*_&
这创造了一个实例变量去追踪砖块地图本身,并创造了另一个实例变量去追踪地图的背景层。你将在之后学到更多有关砖块地图层面的内容。
接下来,用如下内容换掉HelloWorldScene.cpp:
CCTMXObjectGroup&*objectGroup&=&_tileMap-&objectGroupNamed(&Objects&);&&if(objectGroup&==&NULL){&CCLog(&tile&map&has&no&objects&object&layer&);&return&false;&}&&CCDictionary&*spawnPoint&=&objectGroup-&objectNamed(&SpawnPoint&);&&int&x&=&((CCString)*spawnPoint-&valueForKey(&x&)).intValue();&int&y&=&((CCString)*spawnPoint-&valueForKey(&y&)).intValue();&&_player&=&new&CCSprite();&_player-&initWithFile(&Player.png&);&_player-&setPosition(ccp(x,y));&&this-&addChild(_player);&this-&setViewPointCenter(_player-&getPosition());&
最后一行有个预兆&&但不要担心,你很快就能到达那里。
让我们暂停一会并解释对象层面和对象群组。首先注意你是通过在CCTMXTiledMap对象中(而不是layerNamed)通过objectGroupNamed方法检索对象层面。它返回了一个特殊的CCTMXObjectGroup对象。
然后objectGroup调用了objectNamed方法去获得一个CCDictionary,并包含了一些有关对象的有用信息,如x和y轴,宽度和高度。在教程的这一部分,你需要关心的便是x和y轴,将其设置为玩家精灵的位置。
在代码块的最后你设置了视图去明确玩家的位置。所以现在添加如下内容到HelloWorldScene.h中:
&void&setViewPointCenter(CCPoint&position);&
并添加一个新方法到HelloWorldScene.cpp(在文件的最下方最好):
void&HelloWorld::setViewPointCenter(CCPoint&position)&{&&CCSize&winSize&=&CCDirector::sharedDirector()-&getWinSize();&&int&x&=&MAX(position.x,&winSize.width/2);&int&y&=&MAX(position.y,&winSize.height/2);&x&=&MIN(x,&(_tileMap-&getMapSize().width&*&this-&_tileMap-&getTileSize().width)&&&winSize.width&/&2);&y&=&MIN(y,&(_tileMap-&getMapSize().height&*&_tileMap-&getTileSize().height)&&&winSize.height/2);&CCPoint&actualPosition&=&ccp(x,&y);&&CCPoint&centerOfView&=&ccp(winSize.width/2,&winSize.height/2);&CCPoint&viewPoint&=&ccpSub(centerOfView,&actualPosition);&this-&setPosition(viewPoint);&}&
这是关于砖块的解释。想象这一函数设置了摄像机的中心位置。它让用户能够进入地图中x,y轴的任何位置&-但是你有可能不想呈现出某些点,如你可能不想要屏幕超过地图的边缘(那么它便只会呈现出黑边!)。
diagram(from raywenderlich)
如果摄像机的中心小于winSize.width/2或winSize.height/2,那么部分视角是否会脱离屏幕?同样的,检查最上方的界限也很重要,这也是setViewPointCenter所做的。
到目前为止这一函数被当成设置了摄像机所面对的中心位置。然而,这并不是它真正做的。这是在Cocos2D-X中操控CCNode的摄像机的一种方法,但使用它会比你将使用的解决方法(移动整个层面)更复杂。
着眼于这一图解:
diagram(from
raywenderlich)想象一个大世界,你将着眼于坐标轴,即从0到winSize.height/width。你的视图的中心是 centerOfView,你便能清楚自己想要以哪里为中心(actualPosition)。所以为了用实际位置去匹配视图中心位置,你需要做的便是向 下倾斜地图!
通过从视图中心减去实际位置你便能够做到这点,然后将HelloWorld层面设为该位置。
说了这么多理论,是时候执行它们了!创建并运行项目,如果一切运行正常,你将在屏幕上看到忍者,并且视图会不断移动去呈现他的行动。
simulator(from raywenderlich)
让忍者移动
这是个好的开始,但是你的忍者还只是站在那里!这并不像真正的忍者。你将朝着用户敲打的方向移动忍者而让他动起来。添加如下代码到HelloWorldScene.h的公共部分:
void&registerWithTouchDispatcher();&void&setPlayerPosition(CCPoint&position);&bool&ccTouchBegan(CCTouch&*touch,&CCEvent&*event);&void&ccTouchEnded(CCTouch&*touch,&CCEvent&*event);&
然后打开HelloWorldScene.cpp并将如下代码添加到init:
this-&setTouchEnabled(true);&
这将层面设置为可碰触的,所以它将关注于碰触事件。接下来添加如下方法到文件最底端:
#pragma&mark&&&handle&touches&&void&HelloWorld::registerWithTouchDispatcher()&{&CCDirector::sharedDirector()-&getTouchDispatcher()-&addTargetedDelegate(this,&0,&true);&}&&bool&HelloWorld::ccTouchBegan(CCTouch&*touch,&CCEvent&*event)&{&return&true;&}&&void&HelloWorld::setPlayerPosition(CCPoint&position)&{&_player-&setPosition(position);&}&&void&HelloWorld::ccTouchEnded(CCTouch&*touch,&CCEvent&*event)&{&CCPoint&touchLocation&=&touch-&getLocationInView();&touchLocation&=&CCDirector::sharedDirector()-&convertToGL(touchLocation);&touchLocation&=&this-&convertToNodeSpace(touchLocation);&&CCPoint&playerPos&=&_player-&getPosition();&CCPoint&diff&=&ccpSub(touchLocation,&playerPos);&&if&(&abs(diff.x)&&&abs(diff.y)&)&{&if&(diff.x&&&0)&{&playerPos.x&+=&_tileMap-&getTileSize().&}&else&{&playerPos.x&-=&_tileMap-&getTileSize().&}&}&else&{&if&(diff.y&&&0)&{&playerPos.y&+=&_tileMap-&getTileSize().&}&else&{&playerPos.y&-=&_tileMap-&getTileSize().&}&}&&&if&(playerPos.x&&=&(_tileMap-&getMapSize().width&*&_tileMap-&getTileSize().width)&&&&playerPos.y&&=&(_tileMap-&getMapSize().height&*&_tileMap-&getTileSize().height)&&&&playerPos.y&&=&0&&&&playerPos.x&&=&0&)&{&this-&setPlayerPosition(playerPos);&}&&this-&setViewPointCenter(_player-&getPosition());&}&
在此你覆盖了registerWithTouchDispatcher方法去处理目标碰触事件。这将导致ccTouchBegan/ccTouchEnded方法(单数情况)被调用,而不是ccTouchesBegan/ccTouchesEnded方法(复数情况)。
你可能会好奇单数情况和复数情况有什么区别。不过在这种情况下我们没有必要去弄清楚这些问题。但是我还是想向所有人介绍这一方法,因为它带有2个主要优势:
&你不需要处理NSSets,调度程序能够区分它们。每次调用你将获得一个UITouch。&
&你可以通过在ccTouchBegan返回YES而要求一个UITouch。要求碰触的更新只会被发送到要求它们的委托中。所以如果你删除/结束/取消更新,你就需要确保它是你的碰触。这将让你无需在执行多点碰触时做各种检查。&
不管怎样,在你的ccTouchEnded位置上,你像往常那样将位置转换成视图坐标轴,然后再转换成GL坐标轴。而新任务便是你调用了this-&convertToNodeSpace(touchLocation)。
这是因为碰触位置将提供给你用户在视口中轻敲的坐标轴(例如100,100)。但是你可能已经滚动了地图,所以它将匹配(800,800)的位置。所以调用这一方法将基于你如何移动层面而抵消碰触。
接下来你将明确碰触点和玩家位置的区别。你将基于碰触选择一个方向,所以首先你应该决定是上下移动还是左右移动。然后你将判断是正数还是复数而进行上下移动。
你将相对地调整玩家位置,然后将视图中心设置为玩家的位置,这是你在上部分便写下的内容!
注意你必须添加一个安全检查以确保不会将玩家带离地图外部!
所以创建并运行项目,然后尝试它!现在你应该能够轻敲屏幕去移动忍者了!
simulator(from raywenderlich)
这时候你已经知道如何创造地图并将其整合到游戏中了。而在第二部分教程中你将进一步学习如何添加碰撞检测到地图中以避免忍者能够轻松地穿越墙壁。【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
原创热点头条头条头条
24H热文一周话题本月最赞
讲师:226901人学习过
讲师:171406人学习过
讲师:13715人学习过
精选博文论坛热帖下载排行
本书按照国家人事部、信息产业部全国计算机技术与软件专业资格(水平)考试要求编写,内容紧扣《网络管理员考试大纲》。全书共分为11章,覆...
订阅51CTO邮刊游戏地图编辑器使用指南
本文主要介绍目前开发游戏比较流行的两款工具mappy(mapwin)和tiled,分别介绍工具的安装、使用、优缺点分析,虽然不能面面俱到,但使用要点之处都已说明。作为开发游戏的fans们必不可少的入门指南。
游戏地图编辑器使用指南
本文主要介绍目前开发游戏比较流行的两款工具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.快速安装导航:首先就是下载mapwin,作者下载的是mapwin1.4.11版。如果需要支持PNG图片,那么就要到下载两个dll文件:zlib.dll-用于文件压缩,下载地址:zlib.netlibpng12.dll-libpng的window版,png图像压缩库,下载地址:gnuwin32安装这两个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,然后解压缩,可以发现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
此文件表示了这个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.htmlTiled官方网站:http://tiled.rpgdx.net/index.htmlzlib官方网站:http://www.zlib.net/libpng官方网站:http://gnuwin32.sourceforge.net/packages/libpng.htm
阅读(...) 评论()>> tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的
tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的
所属分类:
下载地址:
tiled-0.6.1-src.zip文件大小:400.99 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
tiled地图编辑器是2d的,很不错的国外软件,使用起来很方便的-tiled map editor is 2d, and a very good foreign software, very convenient to use
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
4.03 kB06-25-06 16:16
CHANGES8.16 kB07-15-06 19:41
COPYING17.89 kB06-25-06 16:16
desert.tmx46.91 kB06-25-06 16:16
hexmap.tmx1.67 kB06-25-06 16:16
iso-test.tmx3.60 kB06-25-06 16:16
iso-test2.tmx2.90 kB06-25-06 16:16
iso-test3.tmx25.39 kB06-25-06 16:16
iso-test4.tmx659.00 B06-25-06 16:16
sewer_tileset.png21.73 kB06-25-06 16:16
snowy_trees.tmx22.34 kB06-25-06 16:16
tilebmp-test.tmx1,018.00 B06-25-06 16:16
water.tsx25.03 kB06-25-06 16:16
MANIFEST.MF105.00 B06-25-06 16:16
724.00 B06-25-06 16:16
859.00 B06-25-06 16:16
MANIFEST.MF114.00 B06-25-06 16:16
7.74 kB06-25-06 16:16
4.44 kB06-25-06 16:16
2.18 kB06-25-06 16:16
4.78 kB06-25-06 16:16
1.44 kB06-25-06 16:16
22.23 kB06-25-06 16:16
27.79 kB06-25-06 16:16
11.96 kB06-25-06 16:16
10.58 kB06-25-06 16:16
11.27 kB06-25-06 16:16
6.76 kB06-25-06 16:16
4.04 kB06-25-06 16:17
1.62 kB06-25-06 16:16
832.00 B06-25-06 16:16
MANIFEST.MF165.00 B06-25-06 16:16
2.00 kB06-25-06 16:17
9.80 kB06-25-06 16:17
4.40 kB06-25-06 16:17
2.43 kB06-25-06 16:17
850.00 B06-25-06 16:16
MANIFEST.MF118.00 B06-25-06 16:16
3.76 kB06-25-06 16:17
1.70 kB06-25-06 16:16
2.50 kB06-25-06 16:16
723.00 B06-25-06 16:17
12.37 kB06-25-06 16:17
7.76 kB06-25-06 16:24
1.62 kB06-25-06 16:17
7.49 kB06-25-06 16:17
2.78 kB06-25-06 16:17
8.45 kB06-25-06 16:16
7.05 kB06-25-06 16:17
13.36 kB06-25-06 16:17
15.54 kB06-25-06 16:17
2.39 kB06-25-06 16:17
9.05 kB06-25-06 16:17
1.86 kB06-25-06 16:16
1.78 kB06-25-06 16:17
1.83 kB06-25-06 16:16
829.00 B06-25-06 16:16
27.26 kB06-25-06 16:17
20.67 kB07-08-06 13:55
4.23 kB06-25-06 16:17
631.00 B06-25-06 16:17
2.75 kB06-25-06 16:17
2.74 kB06-25-06 16:17
1.16 kB06-25-06 16:17
1.83 kB06-25-06 16:17
1.10 kB06-25-06 16:17
1.61 kB06-25-06 16:17
1.09 kB06-25-06 16:17
2.03 kB06-25-06 16:17
1.37 kB06-25-06 16:17
1.39 kB06-25-06 16:17
1.44 kB06-25-06 16:17
1.33 kB06-25-06 16:17
2.43 kB06-25-06 16:17
1.07 kB06-25-06 16:17
1.83 kB06-25-06 16:17
9.05 kB06-25-06 16:33
11.40 kB06-25-06 16:16
6.25 kB06-25-06 16:16
1.91 kB06-25-06 16:16
2.78 kB06-25-06 16:16
2.53 kB06-25-06 16:17
2.57 kB06-25-06 16:17
4.11 kB06-25-06 16:17
4.22 kB06-25-06 16:17
13.34 kB06-25-06 16:17
14.12 kB06-25-06 16:17
4.16 kB06-25-06 16:17
8.54 kB06-25-06 16:17
14.38 kB06-25-06 16:17
636.00 B06-25-06 16:17
5.63 kB06-25-06 16:17
113.00 B06-25-06 16:16
5.02 kB06-25-06 16:17
8.44 kB06-25-06 16:17
10.20 kB06-25-06 16:17
17.33 kB07-15-06 19:44
5.17 kB06-25-06 16:17
4.16 kB06-25-06 16:17
8.71 kB06-25-06 16:16
1.12 kB06-25-06 16:16
650.00 B06-25-06 16:16
78.51 kB07-15-06 19:44
9.21 kB06-25-06 16:17
3.21 kB06-25-06 16:16
2.72 kB06-25-06 16:17
back.png299.00 B06-25-06 16:16
cursor-pencil.png269.00 B06-25-06 16:16
empty.png1,012.00 B06-25-06 16:16
forward.png294.00 B06-25-06 16:16
gimp-duplicate-16.png396.00 B06-25-06 16:16
gimp-flip-horizontal-16.png387.00 B06-25-06 16:16
gimp-flip-vertical-16.png407.00 B06-25-06 16:16
gimp-rotate-180-16.png556.00 B06-25-06 16:16
gimp-rotate-270-16.png405.00 B06-25-06 16:16
gimp-rotate-90-16.png418.00 B06-25-06 16:16
gimp-tool-bucket-fill-22.png1.18 kB06-25-06 16:16
gimp-tool-color-picker-22.png627.00 B06-25-06 16:16
gimp-tool-eraser-22.png902.00 B06-25-06 16:16
gimp-tool-move-22.png254.00 B06-25-06 16:16
gimp-tool-object-move-22.png403.00 B06-25-06 16:16
gimp-tool-pencil-22.png729.00 B06-25-06 16:16
gimp-tool-rect-select-22.png196.00 B06-25-06 16:16
gnome-delete.png778.00 B06-25-06 16:16
gnome-down.png305.00 B06-25-06 16:16
gnome-new.png349.00 B06-25-06 16:16
gnome-up.png293.00 B06-25-06 16:16
gnome-zoom-in.png530.00 B06-25-06 16:16
gnome-zoom-out.png507.00 B06-25-06 16:16
gui.properties10.13 kB06-25-06 16:16
gui_de.properties10.90 kB06-25-06 16:16
gui_es.properties10.61 kB06-25-06 16:16
gui_fr.properties11.66 kB06-25-06 16:16
gui_it.properties11.05 kB06-25-06 16:16
gui_nl.properties10.61 kB06-25-06 16:16
lastframe.png320.00 B06-25-06 16:16
logo.png7.46 kB06-25-06 16:16
map.dtd1.58 kB06-25-06 16:16
play.png298.00 B06-25-06 16:16
source.png620.00 B06-25-06 16:16
startframe.png331.00 B06-25-06 16:16
stock_animation.png495.00 B06-25-06 16:16
stop.png239.00 B06-25-06 16:16
visible.png230.00 B06-25-06 16:16
4.42 kB06-25-06 16:17
2.63 kB06-25-06 16:17
1.15 kB06-25-06 16:16
1.05 kB06-25-06 16:16
4.11 kB06-25-06 16:17
1.95 kB06-25-06 16:16
1.01 kB06-25-06 16:17
1.25 kB06-25-06 16:17
1.11 kB06-25-06 16:16
3.40 kB06-25-06 16:17
763.00 B06-25-06 16:17
645.00 B06-25-06 16:17
2.40 kB06-25-06 16:17
2.92 kB06-25-06 16:17
3.13 kB06-25-06 16:17
4.16 kB06-25-06 16:17
1.67 kB06-25-06 16:16
729.00 B06-25-06 16:16
574.00 B06-25-06 16:16
2.72 kB06-25-06 16:17
1.21 kB06-25-06 16:16
4.14 kB06-25-06 16:17
1.44 kB06-25-06 16:16
1.05 kB06-25-06 16:17
1.38 kB06-25-06 16:17
2.81 kB06-25-06 16:16
3.21 kB06-25-06 16:17
1.32 kB06-25-06 16:17
1.51 kB07-08-06 13:55
6.78 kB06-25-06 16:17
1.21 kB06-25-06 16:17
1.08 kB06-25-06 16:16
9.68 kB06-25-06 16:16
5.47 kB06-25-06 16:16
3.71 kB06-25-06 16:16
3.12 kB06-25-06 16:17
958.00 B06-25-06 16:17
4.85 kB06-25-06 16:17
2.33 kB06-25-06 16:17
10.85 kB06-25-06 16:17
10.11 kB06-25-06 16:17
12.19 kB06-25-06 16:17
2.21 kB06-25-06 16:17
7.85 kB06-25-06 16:17
4.33 kB06-25-06 16:17
2.00 kB06-25-06 16:16
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载tiled-0.6.1-src.zip
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:275.256ms - init:0.1;find:1.0;t:10.9;tags:0.3;related:210.3;comment:0.2; 5.8
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧

我要回帖

更多关于 百度地图编辑器怎么用 的文章

 

随机推荐