在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语句,如果一个动作完成后,它会改变精灵的大小。
答案 0 :(得分:1)
您无法使用if
语句执行此操作,但请查看runAction:completion:
。你使用它像:
[sprite runAction:sequence completion:^{
// the action is complete, change size back
}];