1

我正在尝试用 Swift 和 Spritekit 实现一个无尽的滚动地面。如果地面是平坦的表面,我设法让滚动地面工作。但我希望地面呈下降趋势,就像它正在下山一样。我怎样才能做到这一点?这是我目前拥有的代码:

func createGround() {
    for i in 0...2 {
        let grounds = SKSpriteNode(color: UIColor.white, size: CGSize(width: 600, height: 200))
        grounds.name = "Ground"
        grounds.anchorPoint = CGPoint(x: 0.5,y: 0.5)
        grounds.position = CGPoint(x: CGFloat(i) * grounds.size.width, y: -300)

        self.addChild(grounds)
    }
}

func moveGround() {
    self.enumerateChildNodes(withName: "Ground", using: ({
        (node, error) in

        node.position.x -= 6
        node.position.y += 1

        if node.position.x < -((self.scene?.size.width)!) {
            node.position.x += (self.scene?.size.width)! * 3
            node.position.y =
                -400
        }
    }))
}

这会创建地面并以一定角度在屏幕上滚动它们,但地面节点不会彼此对齐。我想我需要一些三角函数来让它们对齐?这是目前的样子:

在此处输入图像描述

白色矩形是我的地面节点。灰色只是一个不会移动的占位符地面节点,我计划在滚动地面正常工作后删除。

4

0 回答 0