0
我想创建一个简单的SpriteKit
游戏。我有一个从屏幕底部中心开始的玩家。 我加入了我的GameScene
相机跟随播放器,但它不起作用。当我使用此代码运行:SKCameraNode奇怪的工作
class GameScene: SKScene {
let mPlayer = Player(circleOfRadius: 45, fillColor: myColors.blue, strokeColor: myColors.red)
let cameraNode = SKCameraNode()
override func didMove(to view: SKView) {
setup()
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
moveCamera()
Player.movePlayerUp(mPlayer: mPlayer)
}
func setup(){
mPlayer.position = CGPoint(x: self.frame.midX - PLAYER_WIDTH, y: self.frame.minY + PLAYER_HEIGHT)
self.camera?.position = mPlayer.position
self.camera = cameraNode
self.addChild(cameraNode)
self.addChild(mPlayer)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
let location = touch.location(in: self)
mPlayer.run(SKAction.moveTo(x: location.x, duration: 0.1))
}
}
func moveCamera(){
let moveAction = SKAction.moveTo(y: mPlayer.position.y, duration: 0.1)
cameraNode.run(moveAction)
}
}
我怎样才能让相机跟随玩家从一开始就移动到顶端? 希望我的问题很清楚,并为图片的大小感到抱歉。
我尝试添加你的代码,但没有似乎是不同的。如果相机正在移动,为什么背景不会随着播放器向上移动而从底部缓慢“消失”? – swiftnewbie
它正在为我工作。我将你的代码复制到一个新的游戏项目中,并在背景中添加了一些条纹并改变了移动方法。一切工作正常。您的背景是图像还是您设置了场景背景颜色? – crashoverride777
它是背景颜色。它似乎工作,但我希望屏幕底部随着播放器上升而“消失”。 – swiftnewbie