Как добиться одинаковой физики на экранах разных размеров? - PullRequest
0 голосов
/ 31 января 2019

Есть ли какой-нибудь элегантный способ вычисления скоростей, размеров и расстояний, чтобы они в конечном итоге были одинаковыми на всех экранах?Работа.Все получилось с очень странными размерами, как только размер экрана больше не составлял 1920x1080.

РЕДАКТИРОВАТЬ: Я исправил это.Теперь я создаю объекты, используя доли ширины экрана для размеров.Я делю каждую жестко запрограммированную скорость на 1080 / screenWidth или 1920 / screenHeight, соответственно, чтобы они были одинаковыми для каждого размера экрана.

Поэтому я по-прежнему использую коэффициенты масштабирования, но использую их гораздо меньшечасто, и я думаю, что я иногда использовал их в неправильных местах.

Теперь вопрос: Теперь, когда все масштабируется с шириной экрана, как я могу поддерживать устройства с другими соотношениями, кроме 16: 9?Я попытался выяснить, какая из сторон ближе к кадру 16: 9, а затем использовать эту для правильного масштабирования, но это не сработало, как я выяснил.Как игры обрабатывают различные соотношения экрана?

1 Ответ

0 голосов
/ 05 февраля 2019

Теперь я использую height данного 16 : >9 дисплея и вычисляю width, которое было бы на экране с 16 : 9 дисплеем, затем я вычисляю все, как если бы это была фактическая ширина.Все отрисовывается со смещением (actualWidth-wantedWidth)/2f, поэтому объекты отображаются по центру.То же самое возможно для высоты, если соотношение составляет 16 : <9

Итак, в двух словах: если соотношение экрана не подходит, я подгоняю его, помещая (черные или текстурированные) полосы вокруг желаемогопространство.

...