Alpha通道在iOS的Cocos2d上屏蔽其他精灵

时间:2012-08-24 22:01:16

标签: ios cocos2d-iphone alpha mask

我的精灵的alpha通道(有时)掩盖其他精灵。

这就是它的样子: screenshot

正如您所看到的,它不会一直发生,并且此处的所有化身都使用相同的纹理文件。 以前有人有过这个问题吗?

顺便说一下,我使用TexturePacker导出精灵。我也在使用Cocos2d 2.0,这就是我初始化它的方式:

CCGLView *glView = [CCGLView viewWithFrame:[window_ bounds] pixelFormat:kEAGLColorFormatRGBA8 depthFormat:GL_DEPTH_COMPONENT24_OES preserveBackbuffer:NO sharegroup:nil multiSampling:NO numberOfSamples:0];
[director_ setProjection:kCCDirectorProjection2D];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA4444];
[CCTexture2D PVRImagesHavePremultipliedAlpha:YES];

2 个答案:

答案 0 :(得分:0)

将此加载为测试时,请尝试将CCTexture2DPiexelFormat设置为更高的规格:

[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGB5A1];

看看是否有帮助?我记得,RGBA4444的位深度要低得多,但当然确实提供了更好的性能。

答案 1 :(得分:0)

在尝试了很多不同的事情后,我发现让它起作用的只是在节点上设置着色器程序:

node.shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:kCCShader_PositionTextureColorAlphaTest];