Tiled实现斜45度瓦片地图
2014-06-25 19:57
1286 查看
Tiled实现斜45度瓦片地图
Androider1232014-06-20 09:52:451277 次阅读首先是我最近在做的一个项目的需求,要做一个斜45度角的大地图,里面有很多的建筑,会有人在里面走来走去。一个手指按住滑动可以拖动地图,两个手指按下可以调整地图的放大和缩小。
1、tiled新建地图,加入我们要做一个480*320的地图
![](http://cn.cocos2d-x.org/uploads/20140620094823_29410.png)
地图方向:选择45度(交错的)这样生成的地图就基本上是矩形的,比较方便。个人感觉用正常方式的也可,不知道有人尝试过没有。
cocos2d-x默认不支持交错式的地图,需要修改下引擎的源码,我参考的是以下两个地方
/article/1681076.html
http://download.csdn.net/download/ycg514230/6801099
地图块大小:你的地图的每一个单元格的宽度、高度。大小前期美术没有做好地面以前,可以自己先临时设置一个,不影响功能开发,我设置的50、25
地图宽度:你要做的地图大小的宽度除以块宽度,最好多出几格,我设置的11
地图高度:你要做的地图大小的高度除以块高度乘以2,也是最好多出几格,我设置的27
注意,使用交错式的时候,红框里面显示的大小不太对,不用理会
效果如图
![](http://cn.cocos2d-x.org/uploads/20140620094900_26753.png)
2、添加背景层(除了能点击的建筑,其他的我统称为背景层)
将块层1修改为ground表示背景,做背景层需要考虑地图的大小、地面素材单元格的复用
1、如果地图比较小,不管有没有复用的单元格,可以直接用一张整图,没必要为了程序包小那么一点而纠结。
2、如果地图比较小,地面上可以复用的单元很少,可以考虑把背景切成几个(设备有加载的图片的最大尺寸限制),比如说ground1、ground2...
3、如果地图比较大,而且复用的单元比较多,那这个就得美术来弄一下了。
在此,我们直接用一张整图作为背景。
点击菜单栏,地图=>新图块,来添加一个地图图块,块宽度和高度直接等于原图大小
![](http://cn.cocos2d-x.org/uploads/20140620094921_89855.png)
选中图片,刷到地图上合适的位置,方便我们下来对地面上的一些位置设置遮挡,设置碰撞属性等等,比如下图,树根的地方是不允许通过的,树背后是允许穿过的,但是穿过的时候,需要把角色设置为半透明,这些属性可以根据这个地图去设置。
![](http://cn.cocos2d-x.org/uploads/20140620094949_19592.png)
3、添加建筑层,这一层是玩家可以点击,可以和玩家交互的,比如NPC,建筑等
点击菜单栏,图层=>添加图层,命名为building,然后点击菜单栏,地图=>新图块,添加一个新的图块,是个小人。过程就不细说了。把小人加到地图的最右侧。
![](http://cn.cocos2d-x.org/uploads/20140620095008_31362.png)
在小人图块上面右击=>图块属性,在里面新加一条键值对,key=type、value="npc1",建筑层也就基本完成了
![](http://cn.cocos2d-x.org/uploads/20140620095042_83808.png)
4、添加属性层
本来这些东西是可以用对象层做,但是这斜45度角的对象层怎么不好用,不知道是否我用的软件的原因,我就用了一个图层表示了
4.1、碰撞属性层
点击菜单栏,图层=>添加图层,新建一个图层,命名为meta-collision,这个就不贴图了
点击菜单栏,地图=>新图块,添加一个用于设置碰撞属性的图块,这个也不贴图了
为新加的图块设置属性,在图块上右击=>图块属性
红色图块:
![](http://cn.cocos2d-x.org/uploads/20140620095112_54629.png)
绿色图块:
![](http://cn.cocos2d-x.org/uploads/20140620095120_57966.png)
在meta-collision图层中设置属性,也就是把能通过和不能通过两个属性的图块刷到该层中,最终的效果如下
![](http://cn.cocos2d-x.org/uploads/20140620095129_85516.png)
4.2、遮挡属性层
点击菜单栏,图层=>添加图层,新建一个图层,命名为meta-mask
点击菜单栏,地图=>新图块,添加一个用于设置碰撞属性的图块,也可以用这个红绿图块
为新增加的图块数值属性,和上面碰撞层的一样,绿色:mask,true 红色:mask,false
在meta-mask上面设置属性,和碰撞层一致。最终效果图如下,刷得时候把meta-collision先隐藏掉
![](http://cn.cocos2d-x.org/uploads/20140620095148_62487.png)
到此,地图基本上就做好了,下来准备导入到项目里面去用了
相关文章推荐
- Tiled实现斜45度瓦片地图
- Tiled结合Unity实现瓦片地图——Tiled2Unity篇
- Tiled结合Unity实现瓦片地图——Unity实战篇
- 【Cocos2d-X开发学习笔记】第25期:游戏背景之瓦片地图集类(CCTMXTiledMap)的使用
- 重写TiledServiceLayer实现Arcgis访问Mapabc地图服务 (转载)
- cocos2d-x 瓦片地图CCTMXTiledMap和图层类CCTMXLayer
- 重写TiledServiceLayer实现Arcgis访问Mapabc地图服务
- WebGIS前端瓦片地图显示原理及实现
- Tiled瓦片地图在真机运行时有缝隙的解决方法
- 让Tiled成为一个强有力的45度菱形Staggered打点器(地图编辑器)
- A1.0.1 如何下载地图瓦片?记录我的实现过程
- Tiled 瓦片地图
- WebGIS前端瓦片地图显示原理及实现
- cocos2dx-3.10 45度地图 tiledmap+A*寻路
- TiledMapEditor创建地图,精灵在地图上下左右移动,尚未实现碰撞检测功能
- 让Tiled成为一个强有力的45度菱形Staggered打点器(地图编辑器)
- cocos2d-x 旅程開始--(实现瓦片地图中的碰撞检測)
- Tiled瓦片地图的使用
- cocos2dx中使用tiled地图实现sprite动态遮挡
- 让Tiled成为一个强有力的45度菱形Staggered打点器(地图编辑器)