2015-02-16 3 views
0

Пожалуйста, помогите.Фон из 4 изображений, добавленных друг другу

У меня 4 фото. Я хочу показать фон с анимацией.

Каждое изображение должно падать над предыдущей анимационной альфой. В результате я получил фон из 4 изображений, добавленных друг к другу.

первого шоу 1.png выцветанию альфа 1. , пока один не появился до конца, начинается второе изображение и т.д.

 var waitTime:NSTimeInterval = 0 
    var durTime:NSTimeInterval  = 4.4 

    for var i = 0; i < 4; i++ { 

      let frostImage = SKSpriteNode(imageNamed: "a\(i)") 
      frostImage.position = CGPointMake(0, 0) 
      frostImage.zPosition = -1 
      frostImage.alpha = 0 
      frostImage.anchorPoint = CGPointZero 
      frostImage.size = CGSizeMake(256, 384) 
      self.addChild(frostImage) 

      self.array.addObject(frostImage) 

      let w = SKAction.waitForDuration(waitTime) 
      let s = SKAction.fadeAlphaTo(0.6, duration: durTime) 
      let a = SKAction.repeatAction(SKAction.sequence([w, s]), count: 1) 


      durTime -= 0.4 
      waitTime += 0.2 

      self.arrayAnim.addObject(a) 
     } 


then 



      for node in self.array { 
       node.runAction(self.arrayAnim[ind1] as SKAction, completion: nil) 
       ind1++ 
      } 
+0

Показать примеры кода. – Maris

+0

этот код работает, но я думаю, что это плохая реализация. – pVaskou

ответ

0

я написал для вас, но в Objective-C, я думаю, вы можете преобразовать его в быстрый.

SKSpriteNode *bg1 = [SKSpriteNode spriteNodeWithImageNamed:@"bg1"]; 
    bg1.zPosition = 1; 
    SKSpriteNode *bg2 = [SKSpriteNode spriteNodeWithImageNamed:@"bg2"]; 
    bg2.zPosition = 2; 
    SKSpriteNode *bg3 = [SKSpriteNode spriteNodeWithImageNamed:@"bg3"]; 
    bg3.zPosition = 3; 
    SKSpriteNode *bg4 = [SKSpriteNode spriteNodeWithImageNamed:@"bg4"]; 
    bg4.zPosition = 4; 

    SKAction *action = [SKAction fadeAlphaTo:1.0 duration:1]; 
    SKAction *wait = [SKAction waitForDuration:1]; 
    SKAction *resetAlpha = [SKAction fadeAlphaBy:0.0 duration:0]; 

    [self runAction:[SKAction repeatActionForever:[SKAction sequence:@[[SKAction runBlock:^{ 
     [bg1 runAction:resetAlpha]; 
     [bg2 runAction:resetAlpha]; 
     [bg3 runAction:resetAlpha]; 
     [bg4 runAction:resetAlpha]; 
    }], [SKAction runBlock:^{ 
     [bg1 runAction:action]; 
    }], wait, [SKAction runBlock:^{ 
     [bg2 runAction:action]; 
    }], wait, [SKAction runBlock:^{ 
     [bg3 runAction:action]; 
    }], wait, [SKAction runBlock:^{ 
     [bg4 runAction:action]; 
    }], wait]]]]; 
+1

Попробуйте использовать массив для хранения фона, а не отдельных переменных, поскольку это упростит изменение количества фонов – Okapi

Смежные вопросы