Граница экрана настройки на iPad Pro 12.9 с SKPhysics
Я пытаюсь создать границу физики для iPad Pro 12.9
Вот как я это делаю:
override func didMove(to view: SKView) {
physicsWorld.contactDelegate = self
let sceneBody = SKPhysicsBody(edgeLoopFrom: self.frame)
sceneBody.friction = 0
self.physicsBody = sceneBody
....
}
Но в альбомной ориентации буква Y значительно ниже и выше, чем на реальном экране, а в книжной ориентации - немного ниже. Но Х прав в обоих.
Я не знаю, что я делаю не так.
Обновить
Я добавил принт к вышеприведенному, и он показывает maxX и maxY self.frame равными 375 и 667 соответственно. В ландшафтном режиме. Насколько я могу судить, ни одно из этих чисел не должно быть, но значение X работает правильно, а Y находится далеко за верхом и низом экрана.
Разрешение экрана этой модели iPad составляет 2732x2048 (вдвое меньше, чем в точках), поэтому я не вижу корреляции между этими числами и указанным размером кадра.
1 ответ
Это как-то связано с тем, как вы масштабируете сцену. При представлении сцены вы можете установить scaleMode
свойство сцены, которая имеет тип SKSceneScaleMode
, Есть четыре разных режима:
fill
: Каждая ось масштабируется независимо, чтобы уместить весь экранaspectFill
: Сцена масштабируется, чтобы заполнить экран, но сохраняя соотношение сторон. Это то, что ваша сцена, вероятно, установлена.aspectFit
: Сцена масштабируется, чтобы уместиться внутри экрана, но сохраняет соотношение сторон. Если сцена имеет другое соотношение сторон экрана устройства, будет использоваться почтовый ящик.resizeFill
: Сцена изменяется в соответствии с видом.