2015-11-12 3 views
0

Я кодирую свой проект курсовой работы A2 и создаю известную игру «Fall Down». Однако я пытаюсь заставить фон изменять каждый цикл во время его прокрутки - поэтому он меняется от синего до красного на желтый и т. Д. Однако, когда я его запускаю, это работает только для первых двух цветов, а затем снова возвращается к первому цвету. Вот код, я в настоящее время имеютПолучение разного цвета для прокрутки вверх

var background = SKSpriteNode() 




override func didMoveToView(view: SKView) { 



    let blueTexture = SKTexture(imageNamed: "BlueBackground") 
    let redTexture = SKTexture(imageNamed: "RedBackground") 
    let yellowTexture = SKTexture(imageNamed: "YellowBackground") 
    let greenTexture = SKTexture(imageNamed: "GreenBackground") 
    let purpleTexture = SKTexture(imageNamed: "PurpleBackground") 
    let TextureArray = [blueTexture, redTexture, yellowTexture, greenTexture, purpleTexture] 

    let levelProgress = SKAction.moveByX(0, y:blueTexture.size().height, duration: 5) 
    let newLevel = SKAction.moveByX(0 , y: -blueTexture.size().height, duration: 0) 
    let sequenceForever = SKAction.repeatActionForever(SKAction.sequence([ levelProgress, newLevel])) 

    var a = 0 

    for var i: CGFloat = 0; i<5; i++ { 
     let currentBG = TextureArray[a] 
     a++ 
     background = SKSpriteNode(texture: currentBG) 
     background.position = CGPoint(x: CGRectGetMidX(self.frame), y: -blueTexture.size().height/2 + blueTexture.size().height * i) 
     background.size.width = self.frame.width 
     background.runAction(sequenceForever) 

     self.addChild(background) 

    } 

если кто-то может мне точку в правильном направлении, или если требуется больше информации, дайте мне знать! Это мой первый пост, поэтому любой совет по проводке будет отличным.

ответ

0

Это может по причине этого:

let levelProgress = SKAction.moveByX(0, y:blueTexture.size().height, duration: 5) 
let newLevel = SKAction.moveByX(0 , y: -blueTexture.size().height, duration: 0) 
let sequenceForever = SKAction.repeatActionForever(SKAction.sequence([ levelProgress, newLevel])) 

background.position = CGPoint(x: CGRectGetMidX(self.frame), y: -blueTexture.size().height/2 + blueTexture.size().height * i 

всегда использовать blueTexture.size. попробуйте изменить его на постоянное значение.

+0

Хорошо, давайте посмотрим через - Спасибо за вашу помощь, и да, я сделаю это, пытаясь заставить его работать первым! – TJSully

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