Cocos2d淡入/淡出动作,永远重复

时间:2011-05-29 20:05:38

标签: cocos2d-iphone action repeat

我正在尝试为基于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]; } ,但我没有看到如何正确实现它。

谢谢!

2 个答案:

答案 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];

希望我帮助过。