Ios 精灵套件中的垂直无休止滚动背景

Ios 精灵套件中的垂直无休止滚动背景,ios,objective-c,xcode,scroll,sprite-kit,Ios,Objective C,Xcode,Scroll,Sprite Kit,我正在做一个游戏,我想让我的背景垂直滚动无限,但我不知道如何开始。我对编码和精灵工具包非常陌生,所以非常感谢您的帮助 有人知道我该怎么做吗?我会从概念上给你一个答案,给你一个起点,因为你没有提供任何代码 您将需要多个屏幕大小的图像,并将它们垂直堆叠在彼此的顶部 然后,您需要逐点向下移动这些图像。当其中一个图像的顶部到达屏幕底部时,将其放回图像堆栈的顶部。这将导致您的背景不断滚动 祝你好运 您希望有两个节点,一个从它开始,另一个在它之后。最后,永远循环 func createGroundForw

我正在做一个游戏,我想让我的背景垂直滚动无限,但我不知道如何开始。我对编码和精灵工具包非常陌生,所以非常感谢您的帮助


有人知道我该怎么做吗?

我会从概念上给你一个答案,给你一个起点,因为你没有提供任何代码

您将需要多个屏幕大小的图像,并将它们垂直堆叠在彼此的顶部

然后,您需要逐点向下移动这些图像。当其中一个图像的顶部到达屏幕底部时,将其放回图像堆栈的顶部。这将导致您的背景不断滚动


祝你好运

您希望有两个节点,一个从它开始,另一个在它之后。最后,永远循环

 func createGroundForward() {
        let groundTexture = SKTexture(imageNamed: "Track")

        for i in 0 ... 1 {
            let ground = SKSpriteNode(texture: groundTexture)
            ground.zPosition = -4
            ground.position = CGPoint(x: 0, y: -groundTexture.size().height + (groundTexture.size().height   + (groundTexture.size().height * CGFloat(i))))

            addChild(ground)

            let moveLeft = SKAction.moveBy(x:0 , y: -groundTexture.size().height, duration: 5)
            let moveReset = SKAction.moveBy(x:0 , y: groundTexture.size().height, duration: 0)
            let moveLoop = SKAction.sequence([moveLeft, moveReset])
            let moveForever = SKAction.repeatForever(moveLoop)

            ground.run(moveForever)
        }
    }
然后将该函数添加到didMove函数中(类似于Sprite的viewDidLoad)


啊,这是有道理的!谢谢你会推荐多少份相同的图片作为一个好的数量?这实际上取决于你希望你的背景有多多样化。例如,如果这是一个游戏,你驾驶一架飞机向前飞行,背景垂直滚动,你只有两张图片,一张是船,一张是岛,用户可能会意识到这只是一个重复的背景。但是如果你有一个海洋,你可能只需要2个就可以逃脱,因为水在任何地方都是水。这取决于你的艺术和你想要达到的目标,所以测试一些,看看什么适合你。
 override func didMove(to view: SKView) {
        self.anchorPoint = CGPoint(x: 0.5, y: 0.5)

        createGroundForward()
    }