需求:
在cocosCreator项目里,动态识别tiledMap的图层,并设置某些图层的碰撞分组。(这样一来,每次改动地图,就不需要重新手动修改碰撞区域,复杂形状的碰撞区域也可以自动设置)
代码:
传入需要动态设置的地图节点(mapNode)即可。
第一个 wall 是tiledMap中的图层名称,
第二个 wall 是我设置的碰撞分组名称。
initMap(mapNode) {
let tiledMap = mapNode.getComponent(cc.TiledMap);
let tiledSize = tiledMap.getTileSize();
let layer = tiledMap.getLayer("wall");
let layerSize = layer.getLayerSize();
for (let i = 0; i < layerSize.width; i++) {
for (let j = 0; j < layerSize.height; j++) {
let tiled = layer.getTiledTileAt(i, j, true);
if (tiled.gid != 0)