Как правильно масштабировать игру на Android

для простоты предположим, что я делаю простую игру-клон Pong для Android. Позволять' Предполагается, что в него можно будет играть только в ландшафтном режиме. (пока не обращайте внимания на квадратные телефоны.)

Я бы хотел, чтобы игра выглядела в одном масштабе на каждом телефоне, если вы сделаете снимок экрана игры на телефоне QVGA и измените размер снимка экрана до размера WVGA , это выглядело бы почти так же, как игра на телефоне WVGA. Другими словами, ширина ракетки всегда должна составлять 1/32 ширины экрана, диаметр шарика всегда должен составлять 1/16 ширины экрана.

Каким будет правильный способ рисования приложения? Он будет работать в стандартном SurfaceView, который будет отображаться на Canvas .

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

Могу ли я узнать физическое разрешение, затем масштабируйте Canvas с помощью шкалы (float sx, float sy) , чтобы все мои холсты (в QVGA и WVGA) имели одинаковое виртуальное разрешение, а затем рисовать одни и те же примитивы в каждой позиции на каждом размере экрана?

Или я могу как-то использовать на холсте пиксели, не зависящие от плотности (провал)?

9
задан Simon Sarris 15 June 2012 в 18:05
поделиться