博客文章

Cocos安卓上面出现残影的问题

作者: andy.      时间: 2019-11-28 23:03:02

        这个问题原来解决后在cocos发帖了,后面Cocos已经合并到Cocos的库里面。想想还是在自己博客上面记录下。以后自身解决的问题都会尽量在博客上面留下来。因为原来写过帖子,就直接copy过来了。

        因为游戏开始的时候指定了要使用alpha通道(肯定要使用),所以下面的alpha用了8bit的大小。

// set OpenGL context attributes: red,green,blue,alpha,depth,stencil

GLContextAttrs glContextAttrs = {8, 8, 8, 8, 24, 8};

然后安卓这边判断如果用了alpha通道,所以判断如果使用了alpha通道,就指定glSurfaceView的背景为透明(可以达到一个效果,比如:Activity上面有元素,OpenGL的画布盖在Activity上面,画布上面没有元素,可以透过画布看到Activity的上面的元素)。这儿指定为透明就会触发某些手机上面的BUG,导致有残影出现(在华为的官方论坛发现一些用了OpenGL es的应用软件也会出现这种情况,比如一些输入法)。把这行注释掉就没问题了。

//this line is need on some device if we specify an alpha bits

if(this.mGLContextAttrs[3] > 0) glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);