Swift 无限背景滚动
Swift infinite background scrolling
我正在尝试开发一个简单的游戏,我需要一个无限滚动的背景。它工作了 2 次,在图像滚动 2 次后,它添加图像到后期且位置不正确。
这是我现在的代码。
移动后台功能
func moveBackground() {
let backgroundVelocity : CGFloat = 10.0
self.enumerateChildNodesWithName("background", usingBlock: { (node, stop) -> Void in
if let bg = node as? SKSpriteNode {
bg.position = CGPoint(x: bg.position.x, y: bg.position.y - backgroundVelocity)
// Checks if bg node is completely scrolled off the screen, if yes, then puts it at the end of the other node.
if bg.position.y <= -bg.size.height {
bg.position = CGPointMake(bg.position.x , bg.position.y + bg.size.width * 2)
}
}
})
}
初始化滚动背景功能
func initializingScrollingBackground() {
self.addChild(background)
for var index = 0; index < 2; index++ {
let bg = SKSpriteNode(imageNamed: "bg")
bg.position = CGPoint(x: 0 , y: index * Int(bg.size.height))
bg.anchorPoint = CGPointZero
bg.name = "background"
bg.zPosition = 10
self.addChild(bg)
}
}
希望大家能帮我解决这个问题。
这一行:
bg.position = CGPointMake(bg.position.x , bg.position.y + bg.size.width * 2)
^^^^^^^^^^^^^
你不应该使用 height
而不是 width
吗?
我正在尝试开发一个简单的游戏,我需要一个无限滚动的背景。它工作了 2 次,在图像滚动 2 次后,它添加图像到后期且位置不正确。
这是我现在的代码。
移动后台功能
func moveBackground() {
let backgroundVelocity : CGFloat = 10.0
self.enumerateChildNodesWithName("background", usingBlock: { (node, stop) -> Void in
if let bg = node as? SKSpriteNode {
bg.position = CGPoint(x: bg.position.x, y: bg.position.y - backgroundVelocity)
// Checks if bg node is completely scrolled off the screen, if yes, then puts it at the end of the other node.
if bg.position.y <= -bg.size.height {
bg.position = CGPointMake(bg.position.x , bg.position.y + bg.size.width * 2)
}
}
})
}
初始化滚动背景功能
func initializingScrollingBackground() {
self.addChild(background)
for var index = 0; index < 2; index++ {
let bg = SKSpriteNode(imageNamed: "bg")
bg.position = CGPoint(x: 0 , y: index * Int(bg.size.height))
bg.anchorPoint = CGPointZero
bg.name = "background"
bg.zPosition = 10
self.addChild(bg)
}
}
希望大家能帮我解决这个问题。
这一行:
bg.position = CGPointMake(bg.position.x , bg.position.y + bg.size.width * 2)
^^^^^^^^^^^^^
你不应该使用 height
而不是 width
吗?