2012-08-07 91 views
1

CCSpriteBatchNode中的不透明度是否可以修改?更改CCSpriteBatchNode中CCSprite的不透明度

下似乎並沒有工作:

((CCSprite *)[batchNode getChildByTag:myTag]).opacity = 0.5; 

的精靈就這樣消失出改良的不透明度高達代替。

+1

批處理節點的紋理是什麼類型的紋理?如果它沒有alpha通道(例如RGB565),則任何不透明度<1都會導致精靈消失,因爲沒有Alpha通道,所以它可能完全不透明或不透明。 – LearnCocos2D 2012-08-07 22:16:42

+0

看起來像是'kCCTexture2DPixelFormat_RGBA8888'。 – SundayMonday 2012-08-08 01:04:49

+0

也在sprite上運行'CCFadeOut'。 – SundayMonday 2012-08-08 01:10:16

回答

13

這就是爲什麼查看類型是個好主意。 opacityCCSprite的財產是GLubyte。看看GLubyte的typedef,我們看到它實際上是無符號字符,這意味着它取整數值從0到255.使用sprite.opacity = 0.5,您將浮點值隱式轉換爲無符號字符,0.5的小數部分被截斷,並且sprite.opacity變爲0 。