SpriteKit scaleTo动作缩放问题

时间:2014-07-08 18:22:07

标签: ios ios7 sprite-kit scale

我试图让节点缩小到一个小尺寸,向下移动,然后一旦发生所有这些重复动画(使用不同的纹理以相同的缩小尺寸)。

这是我的方法,缩小节点并移动它。那部分工作正常。然而,一旦完成,我需要更改精灵纹理并为其设置动画。

- (void)shrinkAndMoveToPosition:(CGPoint)position {

    SKAction *move = [SKAction moveTo:position duration:.5];
    SKAction *scale = [SKAction scaleTo:.3 duration:.5];
    SKAction *moveAndScale = [SKAction group:@[move, scale]];
    [self runAction:moveAndScale completion:^{

        NSArray *textures = @[[SKTexture textureWithImageNamed:@"ship-small_01"],
                              [SKTexture textureWithImageNamed:@"ship-small_02"],
                              [SKTexture textureWithImageNamed:@"ship-small_03"],
                              [SKTexture textureWithImageNamed:@"ship-small_04"]];

        SKAction *animate = [SKAction animateWithTextures:textures timePerFrame:0.5];

        [self runAction:[SKAction repeatActionForever:animate]];

    }];


}

问题是每当我的完成块运行时,精灵会跳回到纹理的大小。如何保持缩小尺寸?

1 个答案:

答案 0 :(得分:0)

我只需要调用另一个animate方法并将YES传递给resize参数:

SKAction *animate = [SKAction animateWithTextures:textures timePerFrame:0.5 resize:YES restore:NO];