我想在重复永远移动动画期间改变精灵的不透明度。
How can I solve this?
由于您想与另一个动作(您的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 内)解决了这个问题。搜索此行:
无效 Sprite::setSpriteFrame(SpriteFrame *spriteFrame)
在这种方法中,您应该添加:
if (_opacityModifyRGB) {
updateColor();
}
并解决了!现在您可以为图层设置不透明度,并且在其中添加的所有动画都会保留其不透明度。记得添加setCascadeOpacityEnabled(true);
到图层。
您可以查看此链接以获取更多信息:https ://github.com/cocos2d/cocos2d-x/issues/15696