Pablo
Pablo

Reputation: 1332

Setting a repeated background in an SKScene

I am building an iOS game using the SpriteKit library. I have a background of stars. However, I don't want to upload a static image, because it might scale incorrectly depending on the device size. So I got a png that I repeat over to fill up the screen. I tried doing this:

 self.backgroundColor = UIColor(patternImage: UIImage(named: "background.png")!);

However, it only sets the background to a black color. Does anyone have any suggestions on how to do this?

Upvotes: 0

Views: 305

Answers (1)

Anshul Bhatheja
Anshul Bhatheja

Reputation: 693

I think this will help you, Firstly set the background using the below code:

for index in 0..<2 {
            let bg = SKSpriteNode(imageNamed: "Your image name")
            bg.position = CGPoint(x: index * Int(bg.size.width), y: 0)
            bg.anchorPoint = CGPoint(x: 0, y: 0)
            bg.name = "background"

            self.addChild(bg)
        }

and then use this code to move the background:

self.enumerateChildNodes(withName: "background", using: {(node, stop) -> Void in
            if let bg = node as? SKSpriteNode {
                bg.position = CGPoint(x: bg.position.x - 3.0, y: bg.position.y)

                if bg.position.x <= -bg.size.width {
                    bg.position = CGPoint(x: bg.position.x + bg.size.width * 2, y: bg.position.y)
                }
            }
        })

Upvotes: 1

Related Questions