Я пытаюсь создать простую игру SpriteKit
. У меня есть плеер, который начинается с нижней части экрана. Я добавил в свою GameScene
камеру, чтобы следить за игроком, но он не работает. когда я запускаю его с этим кодом:SKCameraNode working weird
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