如何使用Swift和Spritekit在某个角度进行无休止的滚动?

时间:2017-08-03 17:57:38

标签: swift sprite-kit skspritenode side-scroller

我正在尝试使用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
        }
    }))
}

这会创建地面并以一定角度滚动它们穿过屏幕,但地面节点不会相互对齐。我想我需要一些三角函数才能使它们对齐?以下是目前的情况:

enter image description here

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

0 个答案:

没有答案