4

我正在尝试做一个简单的自动反转动画。

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

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

4

3 回答 3

11

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)。

于 2014-02-13T09:20:30.793 回答
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]];
于 2013-12-23T04:12:45.953 回答
0

repeatActionForever : 方法反转动作。

问题是moveToX:不可逆的动作

每个动作的 Apple 文档都会显示它是否可逆。

PS:moveByX:y:duration:动作是可逆的

于 2013-12-22T21:28:05.930 回答