У меня есть сцена, которая выступает в качестве страницы меню для игры, и использую кнопку пользовательского интерфейса, чтобы активировать skaction, которая перемещает камеру на сцене, и меняю кнопки меню с помощью контейнера UIView.
Код просто перемещает камеру из крайнего левого в крайнее правое положение.На точно такой же скорости.И все же по какой-то причине движение вправо медленнее, чем влево?
func MoveCameraToRight () {
let CameraWidth = StartingWidth * SceneCamera.xScale
let MoveRight = SKAction.move(to: CGPoint(x: (scene?.frame.maxX)!-(CameraWidth/2), y: (camera?.position.y)!), duration: 1)
camera?.run(MoveRight)
}
func MoveCameraToLeft () {
let CameraWidth = StartingWidth * SceneCamera.xScale
let MoveLeft = SKAction.move(to: CGPoint(x: (scene?.frame.minX)!-(CameraWidth/2), y: (camera?.position.y)!), duration: 1)
camera?.run(MoveLeft)
}
Как видите, длительности абсолютно одинаковы.И все же по какой-то причине на iPhone XS Max оно выглядит значительно медленнее, чем действие «Влево»?
Вот код, который запускает эти действия:
@IBAction func Openlevels () {
let Game = (self.view as! SKView).scene as! MainMenuScene
Game.MoveCameraToRight()
LevelsContainer.isHidden = false
}
func HideLevels () {
let Game = (self.view as! SKView).scene as! MainMenuScene
Game.MoveCameraToLeft()
UIView.animate(withDuration: 0.25, animations: {
self.LevelsContainer.alpha = 0
}) { (complete: Bool) in
self.LevelsContainer.isHidden = true
}
}
А затем на контейнеречтобы отклонить (и переместить камеру назад влево):
@IBAction func Home () {
let Parent = self.parent as! MainMenu
Parent.HideLevels()
Parent.ShowMenu()
}
Оба SKActions для положения камеры установлены в 1, так почему один будет медленнее, чем другой?