在动作完成后执行命令 - SpriteKit

时间:2014-08-30 23:27:44

标签: if-statement sprite-kit skaction

在SpriteKit中,我的精灵有一个简单的动作:

sprite.size = CGSizeMake(40, 10);
sprite.physicsBody =[SKPhysicsBody bodyWithRectangleOfSize:sprite.size];
sprite.position = CGPointMake(65, 230);
SKAction *changeImage = [SKAction setTexture:[SKTexture textureWithImageNamed:@"raniSlide"]];
SKAction *wait = [SKAction waitForDuration:.1];
SKAction *changeImage2 = [SKAction setTexture:[SKTexture textureWithImageNamed:@"raniStick"]];
SKAction *sequence=[SKAction sequence:@[changeImage, wait, changeImage2]];
[sprite runAction:sequence];

它会改变纹理,等待,然后再次更改纹理。这就是它在一段时间内躲避。躲避之后,我希望它恢复到原来的大小。当我在runAction命令之后输入用于改变大小的代码时,它不会执行第一个sprite.size = CGSizeMake(40,10),并且根本没有,因为它保持与它在一开始。所以我想知道如何制作一个if语句,如果一个动作完成后,它会改变精灵的大小。

1 个答案:

答案 0 :(得分:1)

您无法使用if语句执行此操作,但请查看runAction:completion:。你使用它像:

[sprite runAction:sequence completion:^{
    // the action is complete, change size back
}];
相关问题