creator 3.1 tiledlayer getTiledTileAt 函数报错问题

  • Creator 版本:3.1.0

  • 目标平台:chrome浏览器

  • 重现方式:创建tiledmap后代码调用tiledlayer.getTiledTileAt函数,forceCreate参数为true

  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号:

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率: 必现

求助项目正在使用tiledmap,本以为从2.4.5升级上来tiledmap可以优化性能,做合批处理谁知道更坑,issues也看见有两个也没有修复的


https://github.com/cocos-creator/engine/issues/8734
https://github.com/cocos-creator/engine/issues/8447

方便提供个demo?

麻烦了另外cc.TiledTile在界面编辑器里面好像不能修改Grid值,之前2.4.5版本都可以修改

TiledMapDemo.zip (2.1 MB)

补充些信息,好像跟遍历的范围和是否裁剪有关
x,y遍历25个 开启裁剪 正常
x,y遍历30个 开启裁剪 报错
x,y遍历25个 关闭裁剪 报错

好的 收到. 这边会安排时间一一排查修复.

可以手动合并一下修改再试试 https://github.com/cocos-creator/engine/pull/8747

1赞

嗯嗯没有问题了。

之后有问题也欢迎反馈. 因为用户有些使用场景我们测试时覆盖不到, 容易产生遗漏. 看到了都会安排时间排查的

合并修复后确实还发现有几个问题,同一个demo可以复现
1.锚点坐标问题
界面编辑器创建一个新的TiledTile的坐标偏移了半个地图


测试发现把父节点锚点改为0,0可以解决,但是0,0锚点会影响后续的方块格子坐标计算,还是能支持0.5,0.5的锚点最好

2.编辑器里设置Gid没有刷新编辑器显示

经过测试发现修改父节点的锚点会刷新显示出来

同时有几个觉得非常有用得功能也建议引擎可以考虑支持下
1.TiledMap 的等角交错方向,目前45°地图是一个菱形放到场景里一定会有空白区域处理起来很头疼
2.实际使用时经常要用到点击坐标转换成TiledMap上的坐标,建议也可以提供类似的接口

1.锚点坐标问题

能否提供具体复现步骤和创建参照的过程, 方便我修复. 之前修改的时候因为没有具体参照所以不知道正确性.

2.编辑器里设置Gid没有刷新编辑器显示

预期和实际的表现可以的话请详细讲讲

TiledMap 的等角交错方向

这个好像论坛有实现的案例, 可以先参照一下. 之后有精力了这块会跟进的

实际使用时经常要用到点击坐标转换成TiledMap上的坐标

没太明白点击坐标和TiledMap上的坐标具体指的是什么

1.锚点坐标问题的,复现步骤就是直接创建TiledMap,在TileMap的layer下面创建空节点,在空节点上挂载TiledTile,坐标就是偏移的半个地图的


2.Gid刷新就是直接在界面编辑器里修改Gid的值,预期是界面编辑器上会同步在对应的位置显示成对应Gid的贴图,但是目前改成任何值都不会刷新界面
比如现在0,0位置的Gid是16是一棵树,改为17预期树会消失变成草地,但是实际没有。
0,1位置Gid是17是草地,改为16预期会在0,1位置显示一棵树,实际地图也没有变化

点击坐标转换TiledMap坐标就是,世界坐标转换成TiledTile的X,Y,比如说我现在点击了屏幕上一个点需要知道这个点是在哪个TiledTile上,类似TiledLayer.getPositionAt函数的反向函数image

附上demoTiledMapDemo.zip (2.1 MB)

1.锚点坐标问题

确实有此问题, 随后会提供修复

2.Gid刷新就是直接在界面编辑器里修改Gid的值

请问这个在2.4是否也失效了? 方便提供相关demo吗

2.4.4版本gid修改刷新是正常得

TiledMapDemo1.zip (2.4 MB)
creator 版本2.4.4
操作步骤:直接修改layer1目录下得tiledtile得gid参数 1,16,17界面编辑器会相应刷新成对应得贴图

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。