Tiled地图编辑器使用

地图的基本分类

1.正常(俯视图或者说是平视图)可以用于RPG游戏地图,也可考虑用于类似超级玛丽一样的横版过关游戏。

2.45度(地图顺时针旋转45度)可用于RPG游戏地图,也可以考虑战棋类游戏

3.45度交错(地图呈现为四边形边界位置使用1/2的三角形地图块呈现)

4.六角形交错(Hexagonal Staggered)展现方式类似于45度交错地图


关于层

图层、对象层、图像图层

图层:用于分隔不同作用的地图元素以方便管理和实现层叠显示。举例跑酷的场景中可以将地面、背景建筑、碰撞物体等分层放置,对于背景只是用来增加画面效果不会用于判断碰撞等事件,墙壁等瓦片图如果不能充满整个图块就会造成颜色不协调(同一个图块位置无法放置两种不同的瓦片图),所以层的出现解决了这个棘手的问题,保证了背景可以存在上面又能用墙壁等瓦片图遮挡显示一部分图片。

图层主要放置不会改变的图片,如地面或墙壁等(当然游戏中也会有会塌陷的地面)

对象层:主要用于放置NPC、金币、主角、宝箱等,该类特点是经常会移动、变换形态、显示或隐藏等。另外对于我们自定义的一些选框、路径等也可以放在此层中

图像图层:字面意思用于放置整张的图片。属性框中可以选择使用的图片文件、位置、RGB透明度等,实际使用中很少用到。


使用Tile来制作地图

Cocos2DX支持由开源项目地图块图编辑器(Tiled Map Editor)制作并保存为TMX格式的地图。

打开tile转到文件\新建,设定地图大小。记住这是以地图块为单位,不是像素点。我们要做一张比较小的地图,因此就选择30×20。在对话框中填写如下:


Tiled地图编辑器使用_第1张图片


编辑地形


Tiled地图编辑器使用_第2张图片
Tiled地图编辑器使用_第3张图片

全部选好墙的图案


Tiled地图编辑器使用_第4张图片

石头和泥地也按照上面方式分别全选中

最好ctrl+鼠标左键放置


对象层用法

1.建个对象层

2.选择编辑插入图块


Tiled地图编辑器使用_第5张图片

3.按ctrl+鼠标左键放置瓦片路径对象, 如果没按ctrl 可以自由摆放位置

图像图层

Tiled地图编辑器使用_第6张图片


程序里使用:

//加载瓦片地图

auto_tileMap =  TMXTiledMap::create("map/adventure.tmx");

this->addChild(_tileMap, 2);

//获取图层

TMXLayer* floor = _tileMap->getLayer("floor");

auto spr = floor->getTileAt(Vec2(1, 2));  //瓦片格子坐标

if (spr){

        spr->setVisible(false);

}

//获取对象

auto object = _tileMap->getObjectGroup("object");

for (auto it : object->getObjects())

{

        ValueMap& dict = it.asValueMap();

        //名字

        std::string name = dict["name"].asString();

        //坐标

        float x = dict["x"].asFloat();

        float y = dict["y"].asFloat();

}


小结:

1.资源要放齐

2.导出来记得检查png路径是否正确

3.tiled对象层的对象没有命名

4.不操作的物件尽量放在图层上

5.操作的物体尽量用对象层

你可能感兴趣的:(Tiled地图编辑器使用)