2012-08-07 3 views
1

CCSpriteBatchNode에있는 CCSprite의 불투명도를 수정할 수 있습니까?CCSpriteBatchNode에서 CCSprite의 불투명도 변경

다음은 작동하지 않습니다

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

스프라이트는 수정 불투명 나타나지 않고 사라집니다.

+1

배치 노드의 텍스처는 어떤 유형의 텍스처입니까? 알파 채널이없는 경우 (예 : RGB565) 불투명도가 1보다 작 으면 알파 채널이 없어서 스프라이트가 사라 지므로 완전히 불투명하거나 불투명하지 않을 수 있습니다. – LearnCocos2D

+0

'kCCTexture2DPixelFormat_RGBA8888'처럼 보입니다. – SundayMonday

+0

또한 스프라이트에'CCFadeOut'을 실행하면 작동합니다. – SundayMonday

답변

13

이 때문에 유형을 살펴 보는 것이 좋습니다. opacity 속성이 CCSprite 인 경우 GLubyte입니다. GLubyte의 typedef를 살펴보면 실제로 unsigned char이라는 것을 알 수 있습니다. 0에서 255 사이의 정수 값을 가짐을 의미합니다. sprite.opacity = 0.5을 사용하면 부동 소수점 값을 암시 적으로 unsigned char로 변환하고 0.5의 소수 부분이 잘리고 sprite.opacity가 0이됩니다

관련 문제