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