【发布时间】:2019-04-09 01:24:07
【问题描述】:
循环的时间不正确并且重置太快。循环图像也被截断,仅显示其中的一部分,而不是缝合到前一个图像的完整循环背景图像。
我尝试过使用 .position、.size 和 SKAction 值,但似乎无法将其调整到正常工作的位置。
func scrollingBackground() {
let BGTexture = SKTexture(imageNamed: "Background")
for i in 0 ... 1 {
let background = SKSpriteNode(texture: BGTexture)
background.zPosition = -30
background.anchorPoint = CGPoint(x: 0, y: 0)
background.size = CGSize(width: (frame.size.width), height: (frame.size.height))
background.position = CGPoint(x: 0, y: -BGTexture.size().height + (BGTexture.size().height + (BGTexture.size().height * CGFloat(i))))
addChild(background)
let scrollUp = SKAction.moveBy(x: 0, y: BGTexture.size().height, duration: 20)
let scrollReset = SKAction.moveBy(x: 0, y: -BGTexture.size().height, duration: 0)
let scrollLoop = SKAction.sequence([scrollUp, scrollReset])
let scrollForever = SKAction.repeatForever(scrollLoop)
background.run(scrollForever)
}
我希望获得一个无限期运行的无缝无限背景循环,而不是我目前拥有的这种跳跃的混乱。我可能会补充一点,我的背景图片最初的大小并不适合设备,但我想确保我的背景适合所有 iPhone 设备。
【问题讨论】:
-
你使用的宽度是指高度
-
那是我的错,在我将该值更改为高度之前复制了旧代码。但它仍然没有解决它。
标签: swift xcode sprite-kit