2014-08-30 27 views
0

在SpriteKit,我有我的精靈一個簡單的動作:做一個命令後已採取行動 - 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

你不能用if聲明來做,但看看runAction:completion:。您使用它像:

[sprite runAction:sequence completion:^{ 
    // the action is complete, change size back 
}]; 
+0

謝謝你這麼多! – 2014-08-31 17:16:21

+0

很高興我可以幫助:)如果答案適合您,請將其標記爲[接受的答案](http://stackoverflow.com/help/accepted-answer)。 – 2014-08-31 17:24:17

相關問題