我正在尝试使用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
}
}))
}
这会创建地面并以一定角度滚动它们穿过屏幕,但地面节点不会相互对齐。我想我需要一些三角函数才能使它们对齐?以下是目前的情况:
白色矩形是我的地面节点。灰色只是一个占位符地面节点,它没有移动,我计划在滚动地面工作后删除。