几个CClabelTTF的动画

时间:2013-11-20 14:12:45

标签: objective-c cocos2d-iphone

CCLabelTTF的动画,是通过按下按钮触发的。但是,如果我将此动画用于某些CCLabelTTF,则动画仅应用于后者。有什么问题?

        id scaleDown = [CCScaleTo actionWithDuration:.4 scale:0.5];
        id scaleUp = [CCScaleTo actionWithDuration:.2 scale:1.5];
        id scaleBack = [CCScaleTo actionWithDuration:.2 scale:1.0];
        id combination = [CCSequence actions:scaleDown, scaleUp, scaleBack, nil];
        id repeat = [CCRepeat actionWithAction:combination times:3];
        [Var1Podpis,Var2Podpis,Var3Podpis runAction:repeat];

3 个答案:

答案 0 :(得分:3)

动作不能同时在多个目标上......它们包含有关特定目标的状态。您应该将所有代码放在方法中创建重复,并为每个目标运行一次。

-(CCAction*) pulseAction {
    id scaleDown = [CCScaleTo actionWithDuration:.4 scale:0.5];
    id scaleUp = [CCScaleTo actionWithDuration:.2 scale:1.5];
    id scaleBack = [CCScaleTo actionWithDuration:.2 scale:1.0];
    id combination = [CCSequence actions:scaleDown, scaleUp, scaleBack, nil];
    id repeat = [CCRepeat actionWithAction:combination times:3];
    return repeat;
}

and then 

[Var1Podpis runAction:[self pulseAction]];
[Var2Podpis runAction:[self pulseAction]];
[Var3Podpis runAction:[self pulseAction]];

或类似的东西。未经测试,无记忆。

答案 1 :(得分:0)

您只需复制操作并在三个单独的目标上运行即可。

id scaleDown = [CCScaleTo actionWithDuration:.4 scale:0.5];
id scaleUp = [CCScaleTo actionWithDuration:.2 scale:1.5];
id scaleBack = [CCScaleTo actionWithDuration:.2 scale:1.0];
id combination = [CCSequence actions:scaleDown, scaleUp, scaleBack, nil];
id repeat = [CCRepeat actionWithAction:combination times:3];

[var1Podpis runAction:[repeat copy]];
[var2Podpis runAction:[repeat copy]];
[var3Podpis runAction:[repeat copy]];

注意:给出instanceVariablesTitleCaseNames是惯例,即以小写字母开头。

答案 2 :(得分:0)

 -(void) pulseActionForItem:(CCNode*) item {
        id scaleDown = [CCScaleTo actionWithDuration:.4 scale:0.5];
        id scaleUp = [CCScaleTo actionWithDuration:.2 scale:1.5];
        id scaleBack = [CCScaleTo actionWithDuration:.2 scale:1.0];
        id combination = [CCSequence actions:scaleDown, scaleUp, scaleBack, nil];
        id repeat = [CCRepeat actionWithAction:combination times:3];
        [item runAction:repeat];
    }

[self pulseActionForItem:Var1Podpis]; ....