0

我想在重复永远移动动画期间改变精灵的不透明度。

How can I solve this?
4

2 回答 2

0

由于您想与另一个动作(您的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];
于 2013-03-24T18:00:03.803 回答
0

我通过更新 CCSprite.cpp 文件(在文件夹 2d>sprite-nodes 内)解决了这个问题。搜索此行:

无效 Sprite::setSpriteFrame(SpriteFrame *spriteFrame)

在这种方法中,您应该添加:

if (_opacityModifyRGB) {
  updateColor();
}

并解决了!现在您可以为图层设置不透明度,并且在其中添加的所有动画都会保留其不透明度。记得添加setCascadeOpacityEnabled(true);到图层。

您可以查看此链接以获取更多信息:https ://github.com/cocos2d/cocos2d-x/issues/15696

于 2016-12-23T09:56:03.117 回答