关于3.3f里的ClippingNode不规则遮罩,在开发环境下正常,设备上运行异常的问题

异常是这样子的:
已经设置了setAlphaThreshold(0);
在开发环境下是正常的(win7、cocosCode,sdk版本是3.3F)。
但是在真机上,遮罩是有用的,但遮罩所用的png的透明区域都没有效果,就是美术提供的整个png的尺寸是多大,遮罩显示区域就是多大,从而无法实现像圆形头像区等不规则遮罩。

搜索论坛相关帖子,在AppActivity.java里,复写这个方法:
public Cocos2dxGLSurfaceView onCreateView() {
Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8); // this line is required for clipping

        return glSurfaceView;  
} 

在真机上测试,依然没有效果,显示效果一样(加不加都是不响应透明区域)。
确定这段代码已经加入成功AppActivity.java类里,(因为我之前犯了个错,没有import Cocos2dxGLSurfaceView 这个类进来,导致打包apk时编译失败),并且是正常发布出来了apk。

有哪位前辈遇到过此问题,麻烦指教一下!谢谢!

自顶,有解决了问题的,麻烦帮忙一下,谢谢了!

为什么我的会显示白色,log提示“Stencil buffer is not enabled”,请问你是怎么写的?

我的代码是这样的:
local headImg = ccui.ImageView:create();
headImg:ignoreContentAdaptWithSize(true);
headImg:loadTexture(“heroHead/heroHead_” … id … “.png”, ccui.TextureResType.localType);
local stencilNode = cc.Node:create();–创建一个遮罩底纹的容器
local stencil = ccui.ImageView:create();–准备一张图作为底纹,放进遮罩stencilNode
stencil:loadTexture(“heroHeadMask.png",ccui.TextureResType.plistType);
stencilNode:addChild(stencil)–把遮罩底纹放进去
self.headClipingImg = cc.ClippingNode:create(stencilNode);–创建遮罩层,需要遮罩的东西放里面
self.headClipingImg:addChild(headImg);
self.headClipingImg:setAlphaThreshold(0);
self:addChild(self.headClipingImg);

问题依然没解决。顶一下,看看有没有朋友解决了这个问题,分享下心得哈
因为项目代码量已经比较大,所以也不敢升级了,停在3.3f版本上,不知道3.5等版本是否已经不存在这个问题

3.3 cpp版本也遇到此问题,网友说的用命令打包也无用。
clippingNode中的东西全部不显示了。连白都不白。
win32模拟器显示ok
打包安卓怎么都不行

你是不是放在滚动里面了?我这边发现如果放在ScrollView里面,是什么都不显示了;我们现在是放在UIScrollView里面的,手写的(quick的控件)。凡是遇到滚动又要遮罩,我们就手写代码。但是,如我前面1楼所说的,会出现只能遮罩矩形区域的bug。至今不知道怎么解决……准备叫美术再切一套图了事了。唉

没有放滚动里,各种办法测试过了,仍然不管用。最后被逼无奈,降级版本,从3.3版本降级到3.2版本,然后就可以正常在安卓手机上显示了。tip:我是c++代码。

local stencil = ccui.ImageView:create(); 改成 local stencil = cc.Sprite:create();
这样改似乎可以

顶起,希望得到大大的重视

顶起,怎么解决的。。。:7:

解决了吗?

8L正解
stencil 要用sprite不要用ImageView。
我之前也遇到过这个问题,当时情况比较急,就让美术重新切了一套图。后来多次尝试后发现了这个BUG产生的原因。
ClipNode的stencil 不可以是ImageView,不然真机上会有BUG,但是WIN32上没有此BUG(坑就坑在这里,不然这个问题早就发现了。)。

我刚好跟你相反,我是真机上没问题,在win下显示一片白色。哎~~~~~~~~查了几天都说是什么mm文件修改,复制来复制去。