在Skscene中设置重复的背景



我正在使用SpriteKit库构建iOS游戏。我有星星的背景。但是,我不想上传静态图像,因为它可能会根据设备尺寸而错误地扩展。因此,我得到了一个我重复填写屏幕的PNG。我尝试这样做:

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

但是,它只设置为黑色的背景。有人对如何执行此操作有任何建议吗?

我认为这将帮助您,首先使用以下代码设置背景:

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)
        }

然后使用此代码移动背景:

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)
                }
            }
        })

最新更新