我正在尝试回收相同的内容SKSpriteNode
以制作连续的背景。我创建SKSpriteNode
为bg0
, bg1
,bg2
并在呈现场景时正确定位它们。不知何故,下面的代码只重新定位bg0
一次。
cam
是SKCameraNode
,因此,我正在检查相机是否包含背景节点。由于它们的大小,它们中的一个总是不应该在相机视口中可见。但是,就像我说的那样,这只适用于一次,当相机显示回收时bg0
无法识别它。
先感谢您。
PS:我也试过cam.intersects(bg0)
了,结果一样。
func updateBgPos() {
if (player?.position.y)! > self.frame.height {
if !cam.contains(bg0!) {
print("bg0 is not in the scene")
newPosBgY = (bg2?.position.y)! + self.frame.height
bg0?.physicsBody = nil
bg0?.position = CGPoint(x: self.frame.width / 2, y: newPosBgY)
bg0?.physicsBody = bg1?.physicsBody
} else if !cam.contains(bg1!) {
print("bg1 is not in the scene")
newPosBgY = (bg0?.position.y)! + self.frame.height
bg1?.physicsBody = nil
bg1?.position = CGPoint(x: self.frame.width / 2, y: newPosBgY)
bg1?.physicsBody = bg0?.physicsBody
} else if !cam.contains(bg2!) {
print("bg2 is not in the scene")
newPosBgY = (bg1?.position.y)! + self.frame.height
bg2?.physicsBody = nil
bg2?.position = CGPoint(x: self.frame.width / 2, y: newPosBgY)
bg2?.physicsBody = bg1?.physicsBody
}
}
}