我的场景中有一个 SKCamera,它随着一个可以抛出的球移动。我想制作一个无限滚动的背景,但是当我这样做时,相机就离开了背景。有人知道怎么做吗?
最佳答案
我做了这样的垂直滚动背景:
创建背景类:
import SpriteKit class BGClass: SKSpriteNode { func moveBG(camera: SKCameraNode) { if self.position.y - self.size.height - 10 > camera.position.y { self.position.y -= self.size.height * 3 } } }
创建 3 个背景:
var bg1 : BGClass? var bg2 : BGClass? var bg3 : BGClass?
在 GameScene 中创建一个函数
func manageBackgrounds() { bg1?.moveBG(mainCamera!) bg2?.moveBG(mainCamera!) bg3?.moveBG(mainCamera!) }
在更新中调用 manageBackground():
override func update(currentTime: NSTimeInterval) { mangePlayer() moveCamera() mangeBackgrounds() createNewClouds() }
对于水平滚动(依次添加3张背景图片并将相机设置在第一张图片上):
像这样改变背景类:
import SpriteKit class BGClass: SKSpriteNode { func moveBG(camera: SKCameraNode) { if self.position.x - self.size.width - 10 > camera.position.x { self.position.x -= self.size.width * 3 } } }
在移动相机功能中:
func moveCamera() { self.mainCamera?.position.x += 3 }
关于swift - 我可以在 SKCamera 中制作无限滚动背景吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338631/