Масштабирование для нескольких разрешений в Box2d и Android - PullRequest
2 голосов
/ 29 июня 2010

Я занимаюсь разработкой игры, которая использует движок box2d в Android. Я создаю мир физики по определениям, выходящим xml, определенным для разрешения 320X480.

Теперь в box2d я учел, что 1 единица равна 30 пикселям. Вопрос в том, есть ли другой вариант, кроме определения отдельного xml для каждого разрешения, чтобы правильно масштабировать его для всех экранов?

Я пытался получить плотность экрана из показателей Показа и настроить масштаб, который использует box2d, но мир физики выглядит не так.

Кто-нибудь сталкивался с этой ситуацией и разрешил ее?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Определите размер мира из размера дисплея, преобразованного в метры, используя PTM_RATIO например.

WindowManager w = getWindowManager();
Display d = w.getDefaultDisplay();
int width = d.getWidth();
int height = d.getHeight();

mWorldWidth = (float)(width / PTM_RATIO);
mWorldHeight = (float)(height / PTM_RATIO);

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

0 голосов
/ 29 июня 2010

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

...