【发布时间】:2013-03-24 17:56:59
【问题描述】:
我想在重复永远移动的动画中改变精灵的不透明度。
How can I solve this?
【问题讨论】:
标签: iphone cocos2d-iphone ccsprite
我想在重复永远移动的动画中改变精灵的不透明度。
How can I solve this?
【问题讨论】:
标签: iphone cocos2d-iphone ccsprite
由于您想与另一个操作(您的CCRepeatForever)一起执行此操作,您应该使用能够在同一时刻执行多个操作的CCSpawn 操作,例如:
id action1 = [CCEaseOut actionWithAction:[CCActionTween actionWithDuration:0.1 key:@"opacity" from:0 to:255]
id action2 = your movement action
id action3 = [CCSpawn actionOne:action1 two:action2];
id action4 = [CCRepeatForever actionWithAction:action3];
【讨论】:
我通过更新 CCSprite.cpp 文件(在文件夹 2d>sprite-nodes 内)解决了这个问题。 搜索此行:
void Sprite::setSpriteFrame(SpriteFrame *spriteFrame)
在这个方法中你应该添加:
if (_opacityModifyRGB) {
updateColor();
}
解决了!
现在您可以为图层设置不透明度,并且在其中添加的所有动画都会保留其不透明度。记得将 setCascadeOpacityEnabled(true); 添加到图层。
您可以查看此链接了解更多信息:https://github.com/cocos2d/cocos2d-x/issues/15696
【讨论】: