Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift无限背景未与左侧对齐_Ios_Swift_Sprite Kit - Fatal编程技术网

Ios Swift无限背景未与左侧对齐

Ios Swift无限背景未与左侧对齐,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,这是我用来制作“无限”背景的代码,每次创建一个新图像,然后不断替换旧图像。然而,在应用程序开始时,只有一半的图像可见。我希望图像在启动时与屏幕左侧对齐,而不是在中间 此应用程序是横向的 让bgTexture=SKTexture(图像名为:“thebackground”) 让movebg=SKAction.moveBy(x:-bgTexture.size().width,y:0,持续时间:25) 让replacebg=SKAction.moveBy(x:bgTexture.size().width

这是我用来制作“无限”背景的代码,每次创建一个新图像,然后不断替换旧图像。然而,在应用程序开始时,只有一半的图像可见。我希望图像在启动时与屏幕左侧对齐,而不是在中间

此应用程序是横向的

让bgTexture=SKTexture(图像名为:“thebackground”)
让movebg=SKAction.moveBy(x:-bgTexture.size().width,y:0,持续时间:25)
让replacebg=SKAction.moveBy(x:bgTexture.size().width,y:0,duration:0)//将bg跳到原始位置
让movebgfever=SKAction.repeatForever(SKAction.sequence([movebg,replacebg]))
background.position=CGPoint(x:bgTexture.size().width/2,y:self.frame.midY)
对于0..<3中的变量i{
变量循环:CGFloat=CGFloat(i)*bgTexture.size().width
背景=SKSpriteNode(纹理:bgTexture)
background.position=CGPoint(x:bgTexture.size().width/2+循环,y:self.frame.midY)
background.size.height=self.frame.height
background.zPosition=-2
后台运行(永远移动)
self.addChild(背景)
}

我认为您的起始位置是错误的,应该是下面这行。x位置需要为负值才能与左边缘对齐

background.position = CGPoint(x: -bgTexture.size().width/2 + loop, y: self.frame.midY)

它的工作方式正是我想要的,非常感谢@GaryMakin@user7594231如果你的问题对你有帮助,你应该考虑接受这个答案。要接受答案,请单击复选标记。这不是一项义务,但它有助于社区,因为它表明答案已经解决了实际问题。如果我是你,我不会运行多个操作,而是将你的所有后台节点附加到父节点,然后在父节点上执行操作
background.position = CGPoint(x: -bgTexture.size().width/2 + loop, y: self.frame.midY)