如何创建一个在Sprite Kit中永远循环的自动回放动画?

时间:2013-12-22 21:08:19

标签: ios iphone sprite-kit skaction

我正在尝试做一个简单的自动倒车动画。

SKAction *a = [SKAction moveToX:10 duration:0.5];
a = [SKAction repeatActionForever:a];
[car runAction:a];

但行动并没有逆转。你如何获得类似于Core Animation的类似自动反转效果?

3 个答案:

答案 0 :(得分:10)

Andrey Gordeev的回答足够接近,

float x = car.position.x;
SKAction *a = [SKAction moveToX:(x+10) duration:0.5];
SKAction *b = [SKAction moveToX:x duration:0.5];
SKAction *seq = [SKAction sequence:@[a,b]];
[car runAction:[SKAction repeatActionForever:seq]];

moveToX:(x + 10)将使其摆动10(而不是在X = 10处)。

答案 1 :(得分:1)

repeatActionForever :方法可以撤消操作。

问题是 moveToX :不可逆的动作

每个操作的Apple文档显示是否可逆。

PS: moveByX:y:持续时间:操作是可逆的

答案 2 :(得分:1)

手动添加反向操作:

float x = car.position.x;
SKAction *a = [SKAction moveToX:10 duration:0.5];
SKAction *b = [SKAction moveToX:x duration:0.5];
SKAction *sequence = [SKAction sequence:@[a,b]];
[car runAction:[SKAction repeatActionForever:sequence]];