【教程分享】如何在Cocos2d-x 3.0rc0中让程序背景透明

本文介绍的效果在游戏方面可能用的比较少,但是在应用上,比如智能机顶盒的应用就很犀利。半透明的效果,隐约可见的桌面,只能说狂拽酷炫叼炸天。。(本文暂适合3.0rc版,Android native activity)

如果你的版本使用的是Java Activity,则可以参考http://www.cocoachina.com/bbs/read.php?tid=224544此文进行操作。

废话不多说,先放图。

就如果你想让你的activity透明,很简单,只需要4步。

  1. 打开AndroidManifest.xml文件,添加Translucent到
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

```
 

2.打开Cocos2dxActivity.java文件,添加
getWindow().setFormat(PixelFormat.TRANSLUCENT);

```
  

3.打开cocos2d/cocos/2d/CCDirector.cpp文件,找到setGLDefaultValues()函数,修改最后一个alpha值,范围从0.0f到1.0f。  
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);

```
   

4.打开cocos2d/cocos/2d/platform/android/nativeactivity.cpp,找到engine_init_display(struct engine* engine)函数,修改如下数组 
 const EGLint attribs] = {
            EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
            EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
            EGL_BLUE_SIZE, 5,
            EGL_GREEN_SIZE, 6,
            EGL_RED_SIZE, 5,
            EGL_DEPTH_SIZE, 16,
            EGL_STENCIL_SIZE, 8,
            EGL_NONE
    };
```
到
const EGLint attribs] = {
                EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
                EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,  
 //EGL_BLUE_SIZE, 5,   -->delete 
 //EGL_GREEN_SIZE, 6,  -->delete 
 //EGL_RED_SIZE, 5,    -->delete 
                EGL_BUFFER_SIZE, 32,  //-->new field
                EGL_DEPTH_SIZE, 16,
                EGL_STENCIL_SIZE, 8,
                EGL_NONE
        };
```
 

搞定收工。

你好,楼主,3.0rc2 在cocos2d/cocos/2d/platform/android/nativeactivity.cpp没有此文件,只有一个javaactivity.cpp
楼主能否分享一个关于3.0rc2 背景变透明的方法

没办法做到因为rc2用的不是nativeactivity,因为考虑到nativeactivity跟众多安卓机型的兼容性问题,所以又用回javaactivity了。。所以就用不了nativeactivity的狂拽炫酷叼炸天的功能啦!!!

请参考此文:http://www.cocoachina.com/bbs/read.php?tid=224544&page=1&toread=1#tpc

果然狂拽酷炫叼炸天,学习了!