2014-04-20 12 views
5

Başka bir görüntü ile önceden başlatılmış olan hareketli grafiğin görüntüsünü değiştirmek için bir yol var mı? Sprite-Kit'teki hareketli görüntü değiştirme Görüntüleri

Denedim:

if ([node.name isEqualToString:@"NameX"]) { 
     SKAction *fadeOut = [SKAction fadeOutWithDuration:0.3]; 
     SKAction *fadeIn = [SKAction fadeInWithDuration:0.3]; 

     [self.sprite runAction:fadeOut]; 

     [self runAction:fadeOut completion:^{ 

      self.sprite = [SKSpriteNode spriteNodeWithImageNamed:@"NameY"]; 

      [self.sprite runAction:fadeIn] 

      }]; 

}

cevap

12

yoktur. Dahili olarak, spriteNodeWithImageNamed: sınıf yöntemi, düğümün doku özelliğini ayarlamak için ilettiğiniz görüntü adını kullanır. Herhangi bir noktada, düğümün dokusunu keyfi olarak değiştirmek isterseniz, onu doğrudan ayarlayabilirsiniz.

[self.sprite setTexture:[SKTexture textureWithImageNamed:@"someOtherImage"]]; 

durumda düğüm yeniden boyutlandırmak veya farklı dokular arasındaki canlandırmak istediğiniz, ayrıca bu iş için bazı SKActions vardır. Sen bu gibi doku dizi oluşturmalısınız

[self.sprite runAction:[SKAction setTexture:[SKTexture textureWithImageNamed:@"someOtherImage"] resize:YES]]; 


[self.sprite runAction:[SKAction animateWithTextures:@[tex1,tex2,tex3] timePerFrame:0.5 resize:YES restore:YES]]; 
+0

i Modern nokta işaretini tercih: self.sprite.texture = [SKTexture ...] – LearnCocos2D

2

:

[SKAction animateWithTextures:[NSArray arrayWithObjects: 
           [SKTexture textureWithImageNamed:@"im1.png"], 
           [SKTexture textureWithImageNamed:@"im2.png"], 
           [SKTexture textureWithImageNamed:@"im3.png"], 
           [SKTexture textureWithImageNamed:@"im4.png"], nil] timePerFrame:0.5 resize:YES restore:YES];