TiledMap Bug 困扰几个星期了

我复现了一个小 demo,上面动图展示了当我滑动屏幕的时候,位于屏幕角落正在移动的npc会突然消失,

在window上 浏览器不会,手机上会,

目前做的移动是控制 TiledMap 改变它的x,y
不知道改成摄像头移动是否可以解决,

这是demo的压缩包
tiledBug.zip (2.0 MB)

下载下来后,麻烦打成安卓包(本来我想自己打好上传的,结果太大了),在手机上下载才能看到实际bug效果

麻烦大神请看一下

好了,现在你们也不用打安卓包了, 我已经把安卓包上传到我的个人站点上去了,你们直接进去下载就可以安装

http://120.26.162.238/

:sob::sob::sob:

怎么好的啊

不要 这么放…你随便 找个 节点 当父类

结合上下文,我不是说项目好了,而是说,好了,你们不用打安卓包了,我已经给你们打好了

:sob::sob::sob:

这样可以吗,我再打个包看看

用addUserNode 是因为,先前它可以做到npc和场景中的物品有层级关系的遮挡 ,

而现在改成了,如果走到黄色格子,人物就变透明…

额… 你这 代码 写的 我有点 强迫症犯了…怎么写无所谓吧… 这个东西 有剪裁的 具体 你源码 看下就知道了

我要看的懂源码



我想起了,为什么用addUserNode

踩到人脸上去了…

:sob::sob::sob::sob:

不行阿,gege

Zindex 的 问题 你自己 写个update 调下不就好了么

不好意思,我没理解这个意思,在update里我怎么知道他应该放到哪个层级…

我试了一下移动摄像头人物也会消失:sob:

update: function (dt) {
// 节点的zIndex重排
var child = this.node.children;
// 1按照y的大小从大到小排序
child.sort(function(lhs, rhs) {
if (lhs.y > rhs.y) {
return -1;
}
else if(lhs.y < rhs.y) {
return 1;
}

        return 0;
    });
    
    // y大的就会排在前面, y小的就会排在后面
    for(var i = 0; i < child.length; i ++) {
        //老版本
        // child[i].setLocalZOrder(1000 + i);
        //新版本v2.3.0
        child[i].zIndex  = 1000+i
    }
    // end 
}

woc,我以为要比位置坐标,没想到还有这种操作,学习了,学习了,感谢感谢!!!!