我正在尝试为基于CCSprite
的{{1}}类创建一个方法来启动播放器实例淡入和淡出,直到通过调用Player
在我的stopAllActions.
课程中,我有:
Player
这不起作用,也没有解决永远重复的问题。我知道我应该使用- (void)pulse
{
[self setOpacity:1.0];
CCAction *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:0.5];
CCAction *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:1.0];
CCSequence *pulseSequence = [CCSequence actions:
fadeIn, // I get a warning about incompatible pointer types...
fadeOut,
nil];
[self runAction:pulseSequence];
}
,但我没有看到如何正确实现它。
谢谢!
答案 0 :(得分:23)
我没有运行这个,但我认为其他人已经成功了:
- (void)pulse
{
[self setOpacity:1.0];
CCFadeTo *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:127];
CCFadeTo *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:255];
CCSequence *pulseSequence = [CCSequence actionOne:fadeIn two:fadeOut];
CCRepeatForever *repeat = [CCRepeatForever actionWithAction:pulseSequence];
[self runAction:repeat];
}
答案 1 :(得分:-1)
我遇到了同样的问题,我花了很长时间才弄清楚原因。
当您创建CCSequences时,我发现您必须复制CCAction。
在你的情况下。
CCAction *fadeIn = [CCFadeTo actionWithDuration:0.5 opacity:0.5];
CCAction *fadeOut = [CCFadeTo actionWithDuration:0.5 opacity:1.0];
CCSequence *pulseSequence = [CCSequence actions:
[fadeIn copy],
[fadeOut copy],
nil];
希望我帮助过。