Я создаю свою первую игру в spriteKit. Я следовал нескольким учебникам, поэтому я могу заставить игру работать в одном размере.
В игре объекты появляются в верхней части экрана и падают на игрока, который находится внизу.
Проблема, с которой я сталкиваюсь, заключается в том, что координаты игрока и объектов относятся к сцене, которая по умолчанию имеет размер iPad pro 9.7.
Теперь, когда я запускаю игру на iPhone 8, объекты также появляются вне поля зрения, и игрок также может немного перемещаться влево / вправо (я использую aspectFill в качестве режима масштабирования, поэтому стороны обрезаются).
Как правильно позиционировать игрока и объекты как дочерние элементы текущего вида, чтобы они правильно масштабировались и их координаты относились к нему?
Я просто использовал это, чтобы дать игроку стартовую позицию (это, конечно, заполнитель):
player = Player(color: .red, size: CGSize(width: 40, height: 80))
player.position = CGPoint(x: frame.midX, y: frame.size.height/5)
player.zPosition = ZPosition.player
addChild(player)
Редактировать: чтобы уточнить, проблема в том, что midX составляет 384, но midX вида составляет 160 на iPhone8, таким образом, несоответствие координат
Вот изображение для уточнения https://imgur.com/a/0I8i5CX
Предполагается, что игрок появляется только в центре, это не проблема, проблема в том, что в любой момент времени система координат касания отличается от системы игрока, что делает невозможным щелчок мышью.
Кроме того, мой центр в gamescene.sks - 0,0
.