Как показано в ответе Джебего, вам нужно использовать CCRepeatForever
.Однако, если вы используете bgSkyer
в качестве флага для переключения между двумя позициями, мы можем вообще пропустить этот флаг, если вы используете CCRepeatForever
вместе с CCSequence
, как показано ниже (явные переменные используются для ясности, новы всегда можете объединить их в одну строку, если хотите):
CCMoveTo *moveTo_240_95 = [CCMoveTo actionWithDuration:1.5 position:ccp(240,95)];
CCMoveTo *moveTo_240_80 = [CCMoveTo actionWithDuration:1.5 position:ccp(240,80)];
CCSequence *actionsForBg2 = [CCSequence actions:moveTo_240_95, moveTo_240_80, nil];
CCAction *repeatForBg2 = [CCRepeatForever actionWithAction:actionsForBg2];
[bg2 runAction:repeatForBg2]
CCMoveTo *moveTo_240_100 = [CCMoveTo actionWithDuration:0.5 position:ccp(240,100)];
CCMoveTo *moveTo_240_112 = [CCMoveTo actionWithDuration:0.5 position:ccp(240,112)];
CCSequence *actionsForBg3 = [CCSequence actions:moveTo_240_100, moveTo_240_112, nil];
CCAction *repeatForBg3 = [CCRepeatForever actionWithAction:actionsForBg3];
[bg3 runAction:repeatForBg3]
CCSequence
выполняет действия, которые вы передаете ему одно за другим в последовательности, CCRepeatForever
будет повторять последовательность навсегда, покаВы вызываете [node stopAllActions]
на узле или до тех пор, пока узел не будет освобожден.