Функция обновления в SpriteKit отличается для iPhone X

У меня есть игра SpriteKit в Swift. Он бесконечно прокручивается в ландшафтном режиме, время от времени порождая препятствия и врагов в функции update() сцены.

Я также обновляю значение оценки здесь. Проблема в iPhone X, так как длина отличается, это полностью портит игру и делает ее неиграбельной. Вещи появляются слишком быстро, а счет обновляется медленно.

В довершение всего симулятор, кажется, запускает игру иначе, чем на реальных устройствах, он отлично работает на симуляторе iPhone X. Но когда я посмотрел на iPhone X своих друзей, это было невозможно, поэтому я даже не уверен, что изменения, которые я делаю, будут иметь значение!

Пожалуйста помоги!


person goat    schedule 21.03.2018    source источник


Ответы (1)


Допуск различных соотношений сторон, разрешений, единиц измерения и расстояний (в стремлении создать единообразный игровой опыт для всех) — сложная проблема, которая усложняется.

Единственный способ быть абсолютно уверенным — это работать в согласованном, произвольном физическом пространстве и разрешать разрешение и соотношения сторон с помощью абстрактной камеры, которой не важны соотношение экрана/разрешения/соотношения сторон устройства.

Даже в этом случае вам необходимо расставить приоритеты физики таким образом, чтобы различия во времени рендеринга кадров (между устройствами) не вызывали особых различий между разными устройствами.

Но даже тогда это не будет абсолютно идеальным. Просто близко к этому.

И игнорируйте симулятор, всегда. Это хорошо только для проверки того, где находятся вещи, а не как они себя ведут и даже не как выглядят.

person Confused    schedule 21.03.2018
comment
Мне удалось настроить мои переменные для условий iphone x, чтобы они работали. Хотя это была полная боль. надеюсь это сработает, посмотрим, когда выйдет это обновление, лол - person goat; 21.03.2018