tiledMap 使用卡顿

先做做了一张Tiledmap 地图,做成了三个map1,map2,map3 prefab预制件。游戏启动后三个prefab 实例化后加到同一个node中,并设置好位置起始位置。当移动到一定距离,则把最左边的mapNode坐标设置为当前最右边坐标。以此实现地图的循环移动,现在出现设置mapNode坐标时,出现了明显的卡顿情况,整个程序卡住了一会儿,然后好了,每次设置mapNode到最后边时都出现。 查看的GL verts 不到一万,GL calls 16**** 有劳大神看看

1赞

这里上传了代码 loadNextMap,是重设坐标的函数Camero.rar (1.7 KB)

请问是哪个平台卡顿?如果只是设置坐标应该是不可能会这样的,应该是你同时做了其它操作引起的。

android 和 web 都有,工程有点大,没能完整上传,要不QQ传下,又绕看看

那麻烦做个简单点的 demo,我们要先存档的,太大的话最后修复的人很难和你沟通。

感谢~~ asdf

下午弄了个工程,只有三个Tiledmap做的prefab 然后控制它的循环,切换地图时只掉了2帧,verts时9000,gl calls 3。想想有些代码要调整下,我再测试下

下午仔细的调试后,最终确定了发送卡顿的时间点,当map1.map2,map3地图循环一圈(视图:map1-map2-map3 --> map2-map3-map1–>map3-map1-map2—> map1-map2-map3),当map1再次出现在屏幕中时,出现了卡顿情况,帧数降低到10。 有劳大神分析下
日志如下:

Simulator: DT -->0.09778100252151489

Simulator: next map --> map3

Simulator: next map --> map1

Simulator: next map --> map2
Simulator: DT -->0.09274300187826157

Simulator: next map --> map3

Simulator: next map --> map1

Simulator: next map --> map2
Simulator: DT -->0.0917700007557869

后续分析了下内存情况,发现出现降帧的原因时释放内存,在跑动过程中,内存不停增长,达到一定值后释放;这样周期性的卡顿。即使时空场景,内存也会慢慢增长

1赞

我的场景只有一个Tiledmap,移动它也都会卡顿,同坑…

我目前查到原因需要查看引擎部分,看看那些地方的代码在不停增加内存,并在什么条件把这些内存释放掉。