Здравствуйте!
Есть игровая сцена (SKScene). По высоте размер сцены вполне стандартный (1080, к примеру), но в ширину сцена очень большая, т.к. на ней будет расположен целый уровень. Для того, чтобы на экране всегда было видно персонажа, была создана камера при помощи SKCameraNode, которая следует прямиком за персонажем. Все работает отлично. Но вот вопрос. В связи с тем, что у девайсов Apple различный формат экрана, не на всех устройствах видно верхние и нижние края экрана. На iPad все видно отлично, но при переходе на iPhone частичка уровня теряется. В голову быстро пришла идея сделать все через Switch
switch UIScreen.main.nativeBounds.height {
case 2436:
print("iPhone X")
cameraNode.yScale = прописываем данные, к примеру 1.8 (подгоняем под размер каждого девайса)
default:
print("nothing")
Все, в принципе, работает. Но вот хотелось бы, по возможности, прописать все одной строкой. Через Switch все делать конечно здорово, но постепенно выходят новые устройства, также можно по невнимательности какое-то устройство не включить в список.
Если говорить коротко, мне нужно сделать так, чтобы камера отдалялась от персонажа до тех пор, пока не упрется в границы сцены, чтобы игрок видел полностью весь уровень по оси Y. И также, хотелось бы прописать защитный механизм, чтобы не было таких моментов, что игрок запускает игру и видит сверху и снизу черные полосы.
Заранее спасибо!
РЕДАКТИРОВАНО
Проведя несколько экспериментов, стало ясно, что при изменении параметров только yScale, картинка становится растянутой. Так как параметры по оси X не меняются, картинка изменяется не в лучшую сторону.
В общем, я так понимаю, мне надо сделать камеру с определенным соотношением сторон и отодвигать ее от персонажа до тех пор, пока она не воткнется в границы экрана и при всем при этом соотношение стороны камеры меняться ни в коем случае не должно. Но пока не совсем понимаю, как это можно реализовать…
В моем понимании на iPad (так, для примера) камера будет работать в обычном режиме, но на iphone, где часть игровой сцены не влезает, камера будет немного отдалена назад, чтобы вместить всю сцену по оси Y. И соответственно соотношение сторон у камеры должно остаться таким же. Помогите, пожалуйста, с кодом…