Cocos Creator v2.2.1-rc.9 最终测试版发布帖

反馈一个问题,2.1.x版本里使用cc.game.addPersistRootNode添加的节点可以正确的显示在浏览器内,但是2.2.x开始就不可以了。经过测试,在浏览器内切换分辨率后就可以正常显示了,但是一旦切换scene就会又不能正常显示。在不能显示的同时,通过日志可以发现,update等行为都会被触发,同时,按钮也是可以点击的状态,只是看不到,这个可以帮忙解决一下么

@EndEvil
有关于2.2的安卓模拟器(我测的网易mumu,据其他玩家反馈其他模拟器都有问题,真机没问题,IOS没问题),经过一句句的排查,发现错误的位置没有解决的头绪,原因就是远程的manifest保存在本地的时候会报错。


buffer.GetString()控制台打印没有问题,能打出来。

prepareUpdate()之后调用到saveToFile,保存远程的manifest到
/blackjack-remote-asset_temp/project.manifest.temp
会导致崩溃,而报错的信息
(_ZN7cocos2d9extension8Manifest10saveToFileERKNSt6__ndk112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE+1590)

怀疑是不是输出文件的时候编码错误?

尝试解决3天了,从js层到Cocos2dxDownloader逐一做了排查,发现并没有错误,而是单纯的这一句
output << buffer.GetString() << std::endl; 导致的错误。

而我看我的manifest文件,一句句的看没觉得哪句编码不对,也没有什么奇葩的命名,到这里感觉无从下手了,怎么能解决一下

附manifest文件project (2).manifest.zip (72.4 KB)
估计直接将其中的内容 C++输出到文件就能触发这个报错(安卓模拟器)

能否提供demo,我本地测试没有问题。

bitmap模式不支持的话,
如果一个游戏要发多平台那不是很坑?

比如中文来说,不太好使用CHAR模式吧?
而剩下的要不使用BITMAP要不NONE,
然后BITMAP不支持原生的话,原生Label不是没有啥好的优化了么?

什么时候加入prefab嵌套!? 还有在计划里吗? 这个我感觉挺重要的 ~

2赞

这个同步宽高得问题 rc2没有修改么?

buffer.GetString()
长度对不对啊。把一些参数打印出来,看一下就知道了!这种问题很大可能是下标越界了。c++崩溃,就这种问题了!

RescueCut.zip (555.1 KB)

cc.game.addPersistRootNode不能显示的问题,麻烦看一下

Dragonbones 的slot显示图片替换为SpriteFrame的功能,能否实现?之前说是龙骨发布5.0后即可,目前已经过去很久了也没有正常,之前c++是可以正常替换的

官方例子:
https://github.com/DragonBones/DragonBonesJS/blob/4db6108c96660a582d5dc0f6fec26a2ac8b875f2/Cocos/Demos/assets/Script/ReplaceSlotDisplay.ts

const logoSlot = this._armatureComponent.armature.getSlot(“logo”);

        if (logoSlot.display === this._logoText) {
            logoSlot.display = logoSlot.rawDisplay;
        }
        else {
            if (!this._logoText) {
                this._logoText = new cc.Node();
                const label = this._logoText.addComponent(cc.Label);
                label.string = "Core Element";
                this._logoText.anchorX = 0.5;
                this._logoText.anchorY = 0.5;
            }

            logoSlot.display = this._logoText;
        }

在2.x版本都不能正常替换

我们会讨论一下有没有处理方法,目前没有支持是因为原生上bitmap模式内存占用很高

用新版的引擎热更新,中途杀掉进程,再重新进行热更新,上次加载到一半的文件,就会一直提示更新失败,打印日志一直返回Partial Content错误@EndEvil

@cary 你好,我刚下载了rc2版本,mask一样的问题,
这是web上的表现没有问题,
这是在安卓上的表现
MaskDemo.zip (275.0 KB)
这是demo
麻烦看下

rc.2么

对的:sweat:

不是,只在安卓模拟器这样

2.2.1.rc2一张这样半透明的图 在合图之后会变成这样半透明消失了
打包出来的真机 显示的图片 半透明也是丢失了的

编辑器中 合图文件格式多个的情况下

点击删除其中一个格式后 右上角的应用按钮没有激活 不能点击 需要选择一下其他的参数之后才能点亮

emmmm,

是否可以参考内存池的分配方式 ?
对一个大块纹理按rect分配给不同的Label,Label销毁后就回收这部分纹理。
然后用链表方式按记录可用纹理。

有可能会存在碎片化的问题。。。

回收部分纹理是怎么个操作?把部分纹理删除掉么?

同上,一样的问题,只有assets 中文件有变动,然后回到Cocos Creator编辑器,都会很卡,一段时间后,不卡了,然后在编辑器上操作,也会特别感觉到有卡顿感,切换 Prefab/Scene 的时候,特别明显