【问题标题】:Changing the opacity of a CCSprite in a CCSpriteBatchNode在 CCSpriteBatchNode 中更改 CCSprite 的不透明度
【发布时间】:2012-08-07 19:42:29
【问题描述】:

可以修改CCSpriteBatchNodeCCSprite 的不透明度吗?

以下似乎不起作用:

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

精灵只是消失了,而不是显示修改后的不透明度。

【问题讨论】:

  • 批处理节点的纹理是什么类型的纹理?如果它没有 Alpha 通道(例如 RGB565),任何不透明度
  • 好像是kCCTexture2DPixelFormat_RGBA8888
  • 还在精灵作品上运行CCFadeOut

标签: cocos2d-iphone opacity ccsprite


【解决方案1】:

这就是为什么查看类型是个好主意。 CCSpriteopacity 属性是 GLubyte。查看 GLubyte 的 typedef,我们看到它实际上是 unsigned char,这意味着它采用 0 到 255 之间的整数值。使用sprite.opacity = 0.5,您将浮点值隐式转换为 unsigned char,0.5 的小数部分被截断,并且 sprite.opacity变为 0。

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 2019-07-02
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多