授权切回游戏 出现残影

在界面A 调用微信授权切换回来之后, 游戏中所带有透明度的可视对象都会透出界面A的残影。 这个时候界面A这个已经是移除掉了的。 不管显示什么东西,只有有透明度的都会有界面A的残影。 比如说在右下角出现一个半透明的方块, 这个时候透过方块可以看到界面A右下角的残影, 将游戏切到后台在切回来就正常。华为p20 必现。

cocos2dx版本 3.16. cocos2dx-js 项目。

@dumganhar
@panda
@minggo
各位大大~!
请问碰到这个问题吗? 现在束手无策了。

这可能是个思路

由于什么特殊的缓存机制,界面 A 依旧存在,这时候带有透明度的材质,默认的混合方式会按照 {cc.ONE,cc.ONE_MINUS_SRC_ALPHA} 进行alpha 混合,就造成了残影。

试着改一下带有透明度的UI的混合方式,改成 ONE,ZERO,或者就是想办法,让界面 A 彻底消失,比如主动调用切换后台,再切换前台的回调方法

关于混合方式,可以参考,LearnOpenGL-CN / Blending

请问这个问题解决了没呢?

延迟几百毫秒或者1秒 再更新画面(移除和增加、更新任何界面上的元素)

1赞

谢谢大佬,我去试试

请问有大佬解决了吗?我在红米 6 Pro 上面也遇到了这个问题。