我正在使用SpriteKit创建一个使用Swift的摩托车越野赛游戏。到目前为止,我已经将播放器和背景添加到了场景中。一切看起来都不错,直到我设置相机跟随播放器。现在背景不再适合屏幕了。
我的背景代码如下:
func setupBackground() {
for index in 1...2 {
let background = SKSpriteNode(imageNamed: "background1")
background.size = self.size
if index == 1 {
background.position = CGPoint(x: 0, y: self.position.y)
} else {
background.position = CGPoint(x: background.size.width, y: self.position.y)
}
background.name = "background"
background.zPosition = -1000
self.addChild(background)
}
}
即使相机跟随播放器,有没有办法将背景设置为适合屏幕?
我在互联网上搜索了几个小时,但我无法找到解决问题的方法。我希望你们中的一些人可以帮助我。
修改
背景适合屏幕,但是一旦我激活相机并将其设置为跟随播放器,背景也会移动。我想修复背景,无论相机在哪里移动,它都适合屏幕... 有没有办法实现这个目标?
相机的代码如下所示:
func setupCamera() {
playerCamera = SKCameraNode()
self.camera = playerCamera
playerCamera.position = player.position
self.addChild(playerCamera)
}
更新方法如下所示:
override func update(currentTime: CFTimeInterval) {
let action = SKAction.moveTo(CGPoint(x: player.position.x + player.frame.width * 2, y: player.position.y), duration: 0.15)
playerCamera!.runAction(action)
}
每个设置方法都由以下方法调用,该方法由didMoveToView方法调用:
func setupScene() {
setupCamera()
setupBackground()
setUpGround()
setupControlls()
}
答案 0 :(得分:0)
由于SpriteKit中没有背景概念(可能很难实现或很好地定义,因为场景或多或少是一个无限的世界),您需要移动背景节点使用与相机相同的动作。