如何让我的背景图像永远循环?

时间:2014-09-30 01:37:58

标签: swift sprite-kit

我得到了背景图片,但不重复。经过一次背景后,它会回到灰色背景。如何让背景永远重复。这是我到目前为止的代码。这是图像:http://i.imgur.com/OgdWXJG.png我在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)

    }

1 个答案:

答案 0 :(得分:0)

就我个人而言,我认为这取决于你要对背景做些什么。

在这种情况下,最好的办法是决定何时需要另一个背景来取代。基本上,如果用户正在平移屏幕(移动它),那么一旦用户到达第一个背景,您将需要添加另一个背景。作为一个额外的好处,如果他们只能在一个方向滚动,你真的只需要2个背景节点。将它们并排放置,然后一旦用户通过,第一次将其移动到第二个前面,反之亦然。如果他们可以向任何方向移动屏幕,每个方向都有一个(左上,上中,右上,中左,中中,中右,左下,中下,右下)不会受到伤害,并通过制作用户在新的中间中心位置的任何节点来重新定位它们。

另一方面,我强烈建议实施一种称为parallaxing的技术。我会解释,但我对此非常了解,并且知道我无法做到公道,所以我建议你阅读:RayWenderlich Space Shooter Tutorial在解释与实例相关的方面做得非常出色。这些示例使用的是Spritekit,但该技术绝对可以转让。

我希望有帮助,我不熟悉Swift所以很抱歉我无法为您提供示例代码。

相关问题