2014-09-30 69 views
0

我得到了移動的背景圖片,但沒有重複。經過背景後,它會回到灰色背景。我如何讓背景永遠重複。這是迄今爲止的代碼。這是圖像:http://i.imgur.com/OgdWXJG.png Im在xcode中使用swift。謝謝。如何讓我的背景圖像永久循環?

override func didMoveToView(view: SKView) { 

    // Background 
    background = SKSpriteNode(imageNamed: "background") 
    background.position = CGPointMake(self.size.width/2, self.size.height/2) 
    self.addChild(background) 

    // loop Background Image 

    doAction1() 

    } 

    //loop background image 

    func loopBackground() { 
    let moveToBottom = SKAction.moveByX(0, y: 5000 - self.frame.size.height -     
    background.size.height, duration: 100.0) 

    let removeTheNode = SKAction.removeFromParent() 
    let moveAndRemoveBackground = SKAction.sequence([moveToBottom, removeTheNode]) 
    background.runAction(moveAndRemoveBackground) 

    } 


    //background repeat action 

    func doAction1() { 
    let generateBackground = SKAction.sequence([ 
    SKAction.runBlock(self.loopBackground), 
    SKAction.waitForDuration(1)]) 
    let endlessAction1 = SKAction.repeatActionForever(generateBackground) 
    runAction(endlessAction1) 

    } 

回答

0

我個人認爲這取決於你正在試圖做的背景。

在這種情況下要做的最好的事情就是決定何時需要另一個背景被移位。基本上,如果用戶正在平移屏幕(移動屏幕),那麼一旦用戶到達第一個屏幕的末尾,您將需要添加另一個背景。作爲一個額外的好處,如果他們只能向一個方向滾動,那麼你只需要2個背景節點。將它們並排放置,然後一旦用戶順利通過,第一次將其移動到第二個之前,反之亦然。如果他們可以在任何方向上移動屏幕(左上,中上,右上,中左,中中,右中,左下,中下和右下),那麼屏幕就不會受到傷害,並且可以重新定位他們全部通過使用戶處於新的中間位置中的任何節點。

另一方面,我強烈建議實施一種稱爲parallaxing的技術。我會解釋一下,但我對此知之甚詳,並且知道我無法做到公平,所以我會敦促你閱讀:RayWenderlich Space Shooter Tutorial,他在解釋與示例的差異方面做得非常出色。這些例子使用Spritekit,但這種技術是絕對可以轉讓的。

我希望有幫助,我不善於使用Swift,因此我很抱歉無法爲您提供示例代碼。