Tiled地图编辑器tiled 怎么编辑地形用

关于cocos2dx 对tiled地图编辑器的使用
CC_BREAK_IF(! CCLayer::init());
_tiled=CCTMXTiledMap::create("tiled.tmx");
this->addChild(_tiled);
//获取英雄的对象层,再根据层获取某英雄的对象
CCTMXObjectGroup *object =_tiled->objectGroupNamed("hero");
CCDictionary *spawnPoint=object->objectNamed("hero1");
winsize =CCDirector::sharedDirector()->getWinSize();
int px=spawnPoint->valueForKey("x")->floatValue();
int py=spawnPoint->valueForKey("y")->floatValue();
//CCLog("x=%f,y=%f",px,py);
_player=CCSprite::create("Player.png");
CC_BREAK_IF(!_player);
_player->setAnchorPoint(CCPoint(0,0));
_player->setPosition(ccp(px,py));
//获取所有敌人位置,再其中创建敌人
object=_tiled->objectGroupNamed("enemy");
for(int i=0;igetObjects()->count());i++)
CCDictionary *enemy=(CCDictionary *)object->getObjects()->objectAtIndex(i);
if(enemy->valueForKey("n")->intValue()==1)
CCSprite *s=CCSprite::create("enemy.png");
float x=enemy->valueForKey("x")->floatValue();
float y=enemy->valueForKey("y")->floatValue();
s->setPosition(ccp(x,y));
s->setAnchorPoint(CCPoint(0,0));
_tiled->addChild(s,4);
CCActionInterval *move=CCMoveBy::create(2,CCPoint(_player->getPosition().x-s->getPosition().x>0?10:-10,_player->getPosition().y-s->getPosition().y>0?10:-10));//
CCFiniteTimeAction *func=CCCallFuncN::create(this,callfuncN_selector(HelloWorld::goon));
s->runAction(CCSequence::create(move,func,NULL));
代码地址 :http://download.csdn.net/detail/five50/6829985
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'地图编辑器 地图编辑器的选择1_牛宝宝文章网
地图编辑器地图编辑器的选择1
尊重作者劳动,转载时请标明出处。[wwW.NIUbB.net)作者:Bugs Bunny地址:/cocos2d-x/archive//2479469.html对于一些小游戏来说,规则就是它的全部,这类游戏使用的场景几乎都是随机生成的。比如,俄罗斯方块、泡泡龙、斗地主、水果忍者之类的。稍微上一些规模的游戏,随机场景可能不满足其游戏难度,这时开发商就会选择使用相对固定的场景。比如,横版过关、角色扮演、战棋、解密游戏等等。游戏越复杂,要涉及的编辑器就越多,地图编辑器,关卡编辑器,精灵编辑器。。。其中最基本最常用的就是地图编辑器。知易的第五篇教程开始讲述关于瓦片地图的内容,其中讲到一个叫做Tiled Map Editor的开源工具。这个工具包括Java/Qt两个版本,因为&Qt版运行起来缺少重要的功能&,所以知易说&至少到目前为止,建议大家使用Java版&。知易的说法是十分严谨的,因为在他发布这份教程的时候,Java版的Tiled Map Editor的版本号是0.7.2,而Qt版只有0.4.0。然而,两年过去了,Qt版已经更新至0.8.0,而Java版却不再维护了。The Java version is no longer maintained (unless somebody steps up to do it), but it is still available here since it has a few features that do not exist in the Qt version yet.根据大家的共识,使用不再维护的工具是不明智的,除非有特殊需要。正因为Java版包含一些Qt版没有的特性,所以它会被保留到xxxx的那一天。抱歉,我也不确定。笔者撰写本文的目的是说明Qt版与Java版Tiled Map Editor的主要差别。这里比较的版本为Qt版0.8.0和Java版0.7.2。你可以从Tiled Map Editor的官网上下载到它们。http://www.mapeditor.org/先来整体的看一下这两个版本:Qt版截图Java版截图正如你所看到的,Qt版支持多国语言,默认与当前系统一致。为了便于对照,我将其设置为英文界面。下面我们一项一项开始对比,尽量只选择有差异的地方讲解。Qt版File菜单Java版File菜单1.支持的地图类型从File菜单来看,它们的功能大致是相同的。那它们都支持哪些地图类型呢?选择New菜单来看一下。Qt版New Map对话框Java版New Map对话框Java版支持Orthogonal(正交,90度)、Isometric(等距,45度)、Hexagonal(六边形),比Qt版多一个Hexagonal,但是要注意这个Hexagonal后面还跟着一个experimental,即实验的。至于实验到了什么程度,我没有用过不做评价,但是可以告诉你,在cocos2d-x中,这个Hexagonal地图是支持的。2.支持的文件格式这两版工具分别支持哪些文件格式也是我们需要知道的。文件格式(导入)Qt版Java版Tiled map files (*.tmx)&&Droidcraft map files (*.dat)&&Json files (*.json)&&Tiled Maps files (*.tmx.gz)&&Mappy Reader (*.fmp)&&文件格式(导出)Qt版Java版备注Tiled map files (*.tmx)&&&Droidcraft map files (*.dat)&&&Flare map files (*.txt)&&&Json files (*.json)&&Java版里叫JSON map writer (*.js, *.js.gz)Lua files (*.lua)&&&T-Engine4 map files (*.lua)&&&TMW-eAthena collision files (*.wlk)&&Java版里叫The Mana World exporter (*.wlk)Tiled Maps files (*.tmx.gz)&&&Mappy Writer (*.map)&&奇怪,导入与导出的后缀名不一样!除了.tmx文件外,这两个版本都支持其他格式,但支持的内容不尽相同。这是为什么呢?原来Tiled Map Editor是支持插件的,表格中.tmx/.tmx.gz以外的格式都是由插件导入的。这大概是为了做MOD什么的吧,反正我们用不上。需要指出的是,在Qt版中,要使用插件进行导出时,要使用File菜单下的Export As命令,在Java版里是Save As命令。3.地图的辅助编辑欢迎您转载分享:Cocos2d-x Tiled地图编辑器(一)基本使用
Tiled地图编辑器支持普通视角地图和45度角地图, 它生成的地图数据文件cocos2d-x完美的支持,Tiled地图编辑器是一个以普通使用为目标地图编辑器,它使用简单并且可以轻松地在不同的游戏引擎中使用,其特性有:
1、使用基于XML编码形的地图数据文件使用可以在不同游戏引擎中通用
2、支持普通、45度两种视角
3、对象的放置位置可以精确到像素
4、支持图素、层次和对象等通用概念
5、自动重新载入图素集
6、可以重置图素的大不和偏移
7、支持图章刷和填充等高效工具
8、支持以通用的格式输入输出来打开和存储文件
开始Tiled地图编辑器编辑地图
一、首先准备地图素材文件放至工程Resources下,安装tiled-0.9.1-win32-setup.exe
地址:http://www.mapeditor.org/
二、启动Tiled,选择“文件-》新地图”,来新建地图工程,弹出如下对话框设置地图的大小和图块大小和地图视角方向
三、选择“地图-》新图块”导入图素文件,弹出如下对话框设置图块的大小、边距、偏移量及图块名称、源路径
vcD4KPHA+PC9wPgo8cD7LxKGizby/6bS0vaizybmmo6zT0rLgz9TKvs28suPD+7PGvLDNvL/ptLC/2tbQtcTNvL/po6y9q828suPD+9DeuMTSu8/Co6y147v3uaS+38C4yc/NvNXCy6KjrLXju/fSu828v+m/qsq8uwPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/2.jpg" alt="\">
五、在图层窗口添加对象层并重命名,并在对象层添加对象,选中新建的对象层,点击工具栏上“插入矩形”在地图上画一个矩形,大小无关紧要,我们主要用来在地图
获取该x,y坐标,以在此放至精灵,右键刚刚添加矩形,选择对象属性,给它命个名称,然后点击确定。
六、点击保存地图命名*.tmx至Resources
七、编写程序代码:
CCTMXTiledMap瓦片地图集类是cocos2d-x中支持Tiled地图编码数据文件形式的类,用于解析地图集的数据文件。开始使用地图,加入代码:
CCTMXTiledMap *pTMXTiledMap = CCTMXTiledMap::create("map.tmx");
pTMXTiledMap->setScale(0.8f);
pTMXTiledMap->setAnchorPoint( ccp(0.5f, 0.5f) );
pTMXTiledMap->setPosition(ccp(visibleSize.width/2 , visibleSize.height/2-300));
this->addChild(pTMXTiledMap);
运行结果:
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&下次自动登录
现在的位置:
& 综合 & 正文
Tiled地图编辑器(一)实现坦克大战
Tiled地图编辑器功能强大、灵活,我认为能实现《坦克大战》游戏的的地图需求。
1.Tiled地图编辑器
其思想为:一个地图由多个层次的图层构成,图层的种类分为三种:块层、对象层和图像层。图层之间的顺序可设置。每种层可以有多个。块层可以看作是地图层,也可看作是物体层。
块层由多种tileset构成,一种tileSet由多个tile构成。比如房屋是一种tileset,而房屋由子部件构成,每个子部件就是一个tile。Tileset和tile的属性都可进行编辑。对于每一种tileset,有多个实例,如何设置每个实例的属性?在对象层上创建对象,每个对象的属性可编辑。图像层则是指地图的背景图像。
其生成的文件为XML格式,结构如下:
属性:地图类型,地图块x方向上的个数.,地图块y方向上的个数.,地图块的宽度,地图块的高度.
子节点有:
? properties(属性)
? tileset(单元集)
属性:全局id,图像资源名称,名称,宽度,高度,偏移位置。
子节点有:
properties(属性)
tile (单元)
- properties(属性)
terraintypes (地形)
名称,tile (单元的索引)
? layer(块层)
属性:名称,宽度,高度,透明度,可见
子节点有:
properties(属性)
data(数据)
属性为tile id
? objectgroup(对象层)
属性:名称,宽度,高度,透明度,可见
子节点有:
properties(属性)
object (对象)
属性:名称,类型,宽度,高度,地表块的x位置,地表块的y位置
- properties(属性)
ellipse (椭圆), polygon(多边形), polyline(折线)
? imagelayer(图像层)
属性:图像资源名称,名称,宽度,高度,透明度,可见。
子节点有:
properties(属性)
2.坦克大战地图的实现
对于每一张地图,由如下构成:
一个图像层:加载美术做好的的地图图像。
1个地形单元集:属性为“碰撞”,表示是否可通。
多个物体单元集。比如房子、石头。属性有“状态”、“阴影图”等等。
一个块层,表示物体层,放置物体。
一个块层,表示物体效果层,放置物体效果。
Tiled地图编辑器也有不好的地方,比如单元集的图不支持动画。
如下是一个地图文件的示例:
&map version="1.0" orientation="isometric" width="27" height="27" tilewidth="64" tileheight="32"&
&tileset firstgid="1" name="房子" tilewidth="64" tileheight="64"&
&tileoffset x="10" y="10"/&
&image source="D:/坦克大决战/地图/perspective_walls.png" width="256" height="256"/&
&tile id="0"&
&properties&
&property name="效果图" value="effect.xmp"/&
&/properties&
&/tileset&
&tileset firstgid="17" name="地形" tilewidth="64" tileheight="32"&
&image source="D:/坦克大决战/地图/地形png.png" width="64" height="32"/&
&terraintypes&
&terrain name="水" tile="0"&
&properties&
&property name="碰撞" value="true"/&
&/properties&
&/terrain&
&/terraintypes&
&tile id="0" terrain="0,0,0,0"/&
&/tileset&
&imagelayer name="图像图层 1" width="27" height="27"&
&image source="D:/坦克大决战/地图/11-small.jpg"/&
&/imagelayer&
&layer name="地形层" width="27" height="27" opacity="0.98"&...&/layer&
&objectgroup name="对象层 1" width="27" height="27"&
&object gid="1" x="32" y="32"&
&properties&
&property name="生命值" value="1"/&
&/properties&
&/objectgroup&
&layer name="物体层" width="27" height="27"&...&/layer&
&layer name="物体效果层" width="27" height="27"&...&/layer&
data节点的内容如下:
&tile gid="10"/&
&tile gid="0"/&
&&&&推荐文章:
【上篇】【下篇】}

我要回帖

更多关于 tiled2unity 怎么用 的文章

更多推荐

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

点击添加站长微信