我试图让节点缩小到一个小尺寸,向下移动,然后一旦发生所有这些重复动画(使用不同的纹理以相同的缩小尺寸)。
这是我的方法,缩小节点并移动它。那部分工作正常。然而,一旦完成,我需要更改精灵纹理并为其设置动画。
- (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]];
}];
}
问题是每当我的完成块运行时,精灵会跳回到纹理的大小。如何保持缩小尺寸?
答案 0 :(得分:0)
我只需要调用另一个animate方法并将YES传递给resize参数:
SKAction *animate = [SKAction animateWithTextures:textures timePerFrame:0.5 resize:YES restore:NO];