论技术吹牛逼,我只服你。
初步猜测是代码逻辑导致的。
UnitView -> initialize,
if(this._status == 0) {
this.closeActive(); //this.imgNode.active = false;
}
这里 this._status会存在为0的情况,导致 this.imgNode.active = false; 展示到页面里,就是对象创建了,但是里边的图片没有显示。
Stairs.json 文件中存在为0的情况:
虽然你不是官方人员,但是你很耐心的看了我的代码,我表示非常的感谢。
你的确抓住了问题的源头,但是,还是抱歉,你分析的不对,你还是没有完全理解代码的思路。
你指出的位置,没有任何问题。
检查下自己的配置文件吧,少年
少年,麻烦你自己检查下你的游戏逻辑,节点在池里面的进出是没问题的,对象也没被销毁,我们没法帮你查游戏逻辑的。
大哥,你晚上不睡觉吗?我刚到公司,你这分析不对啊。
你指出的那个位置,那么简单的地方,你以为我瞎了吗??哈哈,玩笑玩笑,大哥,早点睡觉,真的不是这个地方。
来吧,加个QQ,我的QQ:195221906,麻烦加一下把。或者你给我你的QQ。我给你分析一下问题把。。哎。。
上面的各位大佬们,非常感谢你们花费宝贵的时间,不过你们分析的肯定是错误的。我不可能给你们一一讲解错误原因。我只能针对官方人员了,也希望他们把bug找出来,促进ccc引擎的完善与发展。!!
谢谢各位大神!!
我再这里补充说一下:其实问题不是cc.NodePool,因为我用一个数组模仿cc.NodePool,也是出现同样的问题。所以说,问题应该是 node.removeFromParent(false); // 这个方法有问题。
我在说一下,你发的截图是正常的,有什么好分析的。你这还没出现问题啊,我上面帖子说了,你先跑到360层再说。另外再仔细看看我发的截图。
再说一句:这是我花了半天时间写的demo,demo,demo!!!不是游戏!,一点点的逻辑都没有,完全是最大化的模拟,使得 cc.NodePool 充分的调用。请麻烦细心的看一下代码和对象池调用的地方。
还是加我QQ把,我不给你们讲解一下思路,你们肯定是不愿意花费精力去理解的。我三句话一说:你们就会明白了,简单无比的demo。
我这边只对对象池的逻辑进行的判断,节点进出没问题,如果是 node.removeFromParent(false), 是否可以解释下?我们好处理的?
问题就是我说的问题,重复利用的Node,在游戏进行到后面的时候,我上面玩到了360层开始,出现node上挂在的spriteframe丢失了。。但是赋值已经成功了,就是不显示。
上面有些大佬分析的是我配置文件的问题,他们指出的地方,我当然知道了,那里不是问题。
你看下我发的2张对比的截图,那才是真正的问题所在。
能否加个QQ或者微信,私聊一下呢?我真的确信这是bug。
我给你个分析结果,稍等一会。
好的。
如果方便,我还是建议加个QQ或者微信把?我给你说一下我的代码,我感觉必须解释一下代码,不然你们不深入看进去,的确不容易理解代码的思路。
老实讲, 如果认为真的是对象池的问题,那么你认为出现的问题的原因是什么,写一个更简单的demo应该都能重现。
就看现在的情况, 初始化加载了200个node ,然后频繁存取 ,频繁更换spriteFrame,也许会就会出现你说的情况吧,写一个函数应该都可以搞定。如果真是对象池bug,不一定非得是按照游戏里的业务逻辑才能出现的吧。
我刚刚改了下数据,只改了第一个
把“together”里的全部1,其中1个改了为0
之后发现每次隔30个,都重复了
假设节点池有BUG 而且你不用节点池就OK 你应该从资源的加载和释放下手 这2块是容易踩雷区的地方