Создание фонового узла спрайта - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать бесконечную игру-скроллер и пытаюсь создать два фона.

У меня есть класс фона, как

class BackgroundMG1: SKNode {
    let background: SKSpriteNode
    let size: CGSize

    init(size: CGSize) {
        self.size = size
        let hue = CGFloat((arc4random() % 1000) / 1000)
        let randomColor = UIColor(hue: hue, saturation: 1, brightness: 1, alpha: 1)
        self.background = SKSpriteNode(color: randomColor, size: size)

        super.init()

        setup()
    }

    func setup() {
        background.position.x = 0
        background.position.y = 0
        addChild(background)
    }
}

Я собираюсь заполнить свой фон другими объектами, поэтому мне нужно, чтобы он был классом, а не просто статичным изображением.

У меня моя игровая сцена, вот так,

class AntarcticaMiniGame1: SKScene {

    var player: SKSpriteNode!
    var backgrounds: [BackgroundMG1]!

    override func didMove(to view: SKView) {
        setup()
    }

    func setup(){

        // Initializers
        player = Player()

        // Positions
        player.position.x = 0
        player.position.y = 0
        player.zPosition = 1

        // Set up backgrounds
        backgrounds = [BackgroundMG1]()
        for i in 0..<2 {
            let background = BackgroundMG1(size: size)
            background.position.x = CGFloat(i) * size.width
            background.position.y = 0
            backgrounds.append(background)
            addChild(background)
        }

        // Add to scene
        addChild(player)

    }

    override func update(_ currentTime: TimeInterval) {
        player.physicsBody!.applyForce(CGVector(dx: 25, dy:0))
    }
}

Вы также можете предположить, что у меня настроены земля и объект камеры. Мне пришлось опустить этот код, потому что он не имеет отношения к этому вопросу. Игрок остается на земле, а камера следует за игроком.

Прямо сейчас, когда я загружаю игру, объект игрока перемещается вправо, как и ожидалось. Я вижу один фон, но второй не появляется.

Я чувствую, что делаю некоторые ошибки с позиционированием. Я не на 100% знаю, как работает система координат в Swift.

Редактировать: Моя сцена связана с файлом .sks, который сейчас полностью пуст. Игра в альбомной ориентации.

...