2014-04-20 27 views
5

में स्प्राइट छवियों को बदलना क्या एक स्प्राइट की छवि को बदलने का कोई तरीका है जिसे पहले से ही किसी अन्य छवि के साथ शुरू किया गया है?स्प्राइट-किट

मैंने कोशिश की:

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] 

      }]; 

}

उत्तर

12

नहीं है। आंतरिक रूप से, spriteNodeWithImageNamed: क्लास विधि नोड की बनावट प्रॉपर्टी सेट करने के लिए आपके द्वारा पास किए गए छवि नाम का उपयोग करती है। ऐसा कहा जा रहा है कि, यदि किसी भी समय आप मनमाने ढंग से नोड के बनावट को बदलना चाहते हैं, तो आप इसे सीधे सेट कर सकते हैं।

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

भी ऐसा करने के लिए कुछ SKActions रहे हैं, मामले में आप नोड आकार बदलने या अलग बनावट के बीच चेतन करना चाहते हैं।

[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

मैं पसंद करते हैं आधुनिक डॉट नोटेशन: 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]; 
संबंधित मुद्दे