cocos2d-x中讲解TileMap地图编辑器的高级用法(三)

5 篇文章 0 订阅
5 篇文章 0 订阅

上一篇教大家了一些TileMap地图块设置的基本规则和注意事项

这一篇开始教大家些复杂的东西:

如何通过地图块的id做一些事件的判断。

这里先解释下图块的id是什么:

图块的id就是当你加载地图图片的时候通过设置图片切块的大小会把一张地图图片切成很多小块,这些小块会自动编成一个一维数组,从0开始,如下所示

\

第一步:首先解决第一个问题:如何获取图块id

因为图块首先是画在图层上的,所以我们先得找到对应的图层


1. map = CCTMXTiledMap::create("maps/Test2.tmx"); 
2. CCTMXLayer* walklay = map->layerNamed("layer0");


 

ok,现在walklay就是我们要判断地图id的图层了,通过layer0这个图层名字获得了。

跟编辑器里面的标签要对应上

\

好了现在得到层了,就得找对应id了。

第二步:

也很简单,如果我们想获取图层5行6列的地图块id是多少,www.it165.net


1. CCPoint pp = ccp(6,5);//这里第一个参数是列数,第二个是行数,特别注意 
2. unsigned int id = layer0->tileGIDAt(pp);


 

ok,现在id 就是我们得到的图块的索引值了。

想获得其他图层的其他格子上的图块索引值同理。

得到这个值能干什么呢??

举例:

1、做人物行走阻挡,比如我判断如果地图上所有索引为5的图块不能行走。

2、更换图块,比如我设置所有格子id为5的格子不显示。

。。。。

等等,根据不同的游戏我们可以有很多种的用途。

 

本文出自 “奶制品” 博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值