我正在尝试做一个简单的自动反转动画。
SKAction *a = [SKAction moveToX:10 duration:0.5];
a = [SKAction repeatActionForever:a];
[car runAction:a];
但行动并没有逆转。你如何获得类似 Core Animation 的自动反转效果?
我正在尝试做一个简单的自动反转动画。
SKAction *a = [SKAction moveToX:10 duration:0.5];
a = [SKAction repeatActionForever:a];
[car runAction:a];
但行动并没有逆转。你如何获得类似 Core Animation 的自动反转效果?
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)。
手动添加反向操作:
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]];
repeatActionForever : 方法会反转动作。
问题是moveToX:不可逆的动作
每个动作的 Apple 文档都会显示它是否可逆。
PS:moveByX:y:duration:动作是可逆的