2015-07-20 57 views
-1
import SpriteKit 

class GameScene: SKScene { 

    let bgline1 = SKSpriteNode(imageNamed: "Line.png") 
    let bgline2 = SKSpriteNode(imageNamed: "Line.png") 

    override func didMoveToView(view: SKView) { 
     /* Setup your scene here */ 
     backgroundColor = SKColor.whiteColor() 
     bgline1.anchorPoint = CGPointZero 
     bgline1.position = CGPointZero 
     bgline1.zPosition = 1 
     bgline1.size = CGSizeMake(self.frame.size.width, self.frame.size.height) 
     self.addChild(bgline1) 

     bgline2.anchorPoint = CGPointZero 
     bgline2.position = CGPointMake(bgline1.position.x-1, 0) 
     bgline2.zPosition = 1 
     bgline2.size = CGSizeMake(self.frame.size.width, self.frame.size.height) 
     self.addChild(bgline2) 
    } 

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
     /* Called when a touch begins */ 

     for touch in (touches as! Set<UITouch>) { 
      let location = touch.locationInNode(self) 


     } 
    } 
    override func update(currentTime: CFTimeInterval) { 

     /* Called before each frame is rendered*/ 
     bgline1.position = CGPoint(x: bgline1.position.x-4, y: bgline1.position.y) 
     bgline2.position = CGPoint(x: bgline2.position.x-4, y: bgline2.position.y) 

     if bgline1.position.x < -bgline1.size.width{ 
      bgline1.position = CGPointMake(bgline2.position.x + bgline2.size.width, bgline1.position.y) 
     } 
     if bgline2.position.x < -bgline2.size.width{ 
      bgline2.position = CGPointMake(bgline1.position.x + bgline1.size.width, bgline2.position.y) 
     } 
    } 
} 

這是我創建滾動水平無盡背景的代碼。它應該做出無盡的背景,但事實並非如此。該代碼不是循環第一次嘗試,但在此之後。我想知道爲什麼它不起作用,我應該如何解決它。如何在Swift中創建無限的橫向背景?

編輯 - 從2個節點開始,一條線和fps是< 20.然後線結束,當它「用完」時,節點數變爲0,fps變爲60.比幾秒鐘後線會彈出備份和它像一個無盡的滾動背景完美運行。

+0

你需要解釋什麼是不工作。它在做什麼?它在幹什麼? – Fogmeister

+0

我補充說錯了什麼。 – Rohorao

+0

我沒有看到任何代碼將第一個圖像移回到起始點,一旦它完全移出屏幕。 – Steve

回答

0
bgline2.position = CGPointMake(bgline1.size.width-1, 0) 

這行代碼以某種方式解決了我的問題。我不知道它是如何修復它,但它確實如此。如果有人想爲我解釋這個,請做。我還沒有看到有任何教程使用這個,但它對我有用。

rohit