cocos2d setOpacity在CCRenderTexture上使用时会使sprite变为白色

时间:2015-04-03 11:21:15

标签: ios objective-c cocos2d-iphone

我有一个游戏,最初是在XCode中使用cocos2d v2.x编写的(没有使用其他实用程序)。

我一直把它移植到Spritebuilder项目,因此移植到cocos2d V3.x.我遇到了一些我无法解决或找到答案的奇怪行为。

我有一个游戏对象(功率计),它由许多白色部分组成,这些部分在创建时是彩色的,因此有些是红色的,有些是黄色的,有些是绿色的。当段处于活动状态时,其不透明度为255.停用时,其不透明度为100.这之前完美无缺,但现在,当我使用[segment setOpacity:100]更改不透明度时,精灵变为白色。实际上,将不透明度设置为任何值都会使其变为白色和实心。

任何想法是什么导致了这种行为?精灵被绘制到使用CCTexturePixelFormat_RGBA8888创建的CCRenderTexture上。

使用[segment setColorRGBA:[CCColor colorWithCcColor4b:ccc4(220,40,40,100)]]确实按预期显示,但是一旦我修改了不透明度,它就会再次变为纯白色。

1 个答案:

答案 0 :(得分:2)

我要离开这是其他人有同样问题的情况:在cocos的V3中,不透明度是介于0和1之间的值,而不是之前的0和255。