我正在尝试用 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
}
}))
}
这会创建地面并以一定角度在屏幕上滚动它们,但地面节点不会彼此对齐。我想我需要一些三角函数来让它们对齐?这是目前的样子:
白色矩形是我的地面节点。灰色只是一个不会移动的占位符地面节点,我计划在滚动地面正常工作后删除。