将 cocos2dx 背景 设置 成 透明 的方法

下面 为 从 网络上 搜索到的 将 cocos2dx 背景 设置成 透明的 方法,

android 层,自己 亲测 OK, 但是  需要 将 glSurfaceView.setZOrderOnTop(true);
这句话 注释掉。否则 会有 问题。

android
层 还有 一个 貌似 可行的 方法(没测过):http://blog.csdn.net/ypist/article/details/8805422

至于
ios 端,自己 没测试,博友 可以 参考一下。

android层:

public Cocos2dxGLSurfaceView onCreateView() {

Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);

// hello should create stencil buffer

//        glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);//modify

glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);

glSurfaceView.setZOrderOnTop(true);

glSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);

return glSurfaceView;

}

C++层:

void CCDirector::setGLDefaultValues(void)

{

// This method SHOULD be called only after openGLView_ was initialized

CCAssert(m_pobOpenGLView, "opengl view should not be null");

setAlphaBlending(true);

// XXX: Fix me, should enable/disable depth test according the depth format as cocos2d-iphone did

// [self setDepthTest: view_.depthFormat];

setDepthTest(false);

setProjection(m_eProjection);

// set other opengl default values

//glClearColor(0.0f, 0.0f, 0.0f, 1.0f);//modify

glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

}

即可实现透明效果

补充IOS
上可以参考这个方法变成透明背景:

http://blog.sina.com.cn/s/blog_6957e2e50101bxf1.html

要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。

然后view设置为透明

glView.opaque = NO;

[director setOpenGLView:glView];

[self.viewController.view setBackgroundColor:[UIColor clearColor]];

[self.viewController.view addSubview:glView];

在3.3 版本下,我是在项目内搜索glClearColor,把CCDirector.cpp里的默认背景色设置,改为透明。不同版本处理略有差异

glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

参考网址:http://www.cocoachina.com/bbs/read.php?tid-156363-page-2.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-24 07:06:55

将 cocos2dx 背景 设置 成 透明 的方法的相关文章

将UITableView背景颜色设置为透明的方法

最近在使用UITableView做页面的时候,被一个问题困扰很久,如何将UITableView的页面的背景颜色设置为透明, 显示效果为:每个TableView的Cell只显示图片,lbl等内容,但背景色为透明,即显示为其所在的的UIView的背景色. 在百度上搜索了很多方法都无效,今天终于解决: 一直在纠结于UITableView和UITableViewCell的背景色设置为透明,但无效,最终发现,需要设置一下UITableViewCell的 一个lableText的backgroundcolo

保护眼睛,把常用软件的背景设置成Dark

每天长时间使用电脑,很多软件的背景都是白色,久看对眼睛不好. 1)Google Chrome,WebDev/看新闻/看邮件/写博客.使用Stylish插件和Global Dark Style,效果相当好.2)Eclipse,有各种theme,自己搜.3)VisualStudio2012, 这个太帅了,默认就是Dark,还是M$更懂程序员.4)SublimeText,免费神器,不用太可惜了.5)Outlook,可以更换为Dark Theme6)Notepad++,有设置,Style Configu

android开发(36) Android WebView背景设置为透明

xml布局 <WebView android:id="@+id/wv_content" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:layerType="software" /> 代码

将lable设置成圆角的方法

第一步先添加框架:QuartzCore,frame label.layer.cornerRadius = 10; label.layer.masksToBounds = YES; 利用控件尺寸和圆角半径创建圆,半径为50的圆 Label.frame = CGRectMake(0,0,100,100); label.layer.cornerRadius = 50; label.layer.masksToBounds = YES;

Android 如何把一个 RelativeLayout或ImageView背景设为透明

在项目中,需要把RelativeLayout 和  ImageView背景设置为透明,怎么实现呢?这里主要通过代码,请参阅以下关键代码: public ImageView imgDetail; private RelativeLayout rlMain; rlMain= (RelativeLayout) findViewById(R.id.rlMain);//布局 imgDetail = (ImageView)findViewById(R.id.imgDetail); // 图片 //设置背景

SurfaceView类透明背景设置

将SurfaceView背景设置为透明,主要添加以下几句话就可以了: 在SurfaceView创建后设置一下下面的参数: setZOrderOnTop(true); getHolder().setFormat(PixelFormat.TRANSLUCENT); 还有在draw方法中绘制背景颜色的时候以下面的方式进行绘制就可以实现SurfaceView的背景透明化 canvas.drawColor(Color.TRANSPARENT,Mode.CLEAR);

Windows界面编程-背景图片、透明特效使用

Windows界面编程第一篇 位图背景与位图画刷 可以通过WM_CTLCOLORDLG消息来设置对话框的背景,MSDN上对这个消息的说明如下: The WM_CTLCOLORDLG message is sent to a dialog box before the system draws the dialog box. By responding to this message, the dialog box can set its text and background colors us

CSS下背景属性background的使用方法

背景颜色(background-color) CSS可以用纯色来作为背景,也可以将背景设置为透明,background相当于xhtml中的bgcolor. 它的两个值: transparent(默认值,透明) color(指定的颜色,和文本颜色的设置方法相同) 示例: body {background-color: black;} h1 {background-color: #00ff00;} h2 {background-color: transparent;} p {background-c

Chrome(谷歌浏览器)和Firefox浏览器flash的swf文件发黑不透明问题解决方法

一直以来看到各大网站的FLASH都是黑框框的,很好奇,难道他们不知道flash是可以设成透明的?于是用IE Tab插件浏览了下,发现人家的网页又正常,这样一来我就开始怀疑是我的Chrome有问题,于是在换了多台电脑,多种操作系统之后找到了治标治本的方法:在遇到这里网站时,尽量用IE,如果你的网站也在这类网站之中,那么你可能需要修改自己的网站代码这是一则flash设置为透明的html代码 <param name="wmode" value="transparent&quo