для простоты предположим, что я делаю простую игру-клон Pong для Android. Позволять' Предполагается, что в него можно будет играть только в ландшафтном режиме. (пока не обращайте внимания на квадратные телефоны.)
Я бы хотел, чтобы игра выглядела в одном масштабе на каждом телефоне, если вы сделаете снимок экрана игры на телефоне QVGA и измените размер снимка экрана до размера WVGA , это выглядело бы почти так же, как игра на телефоне WVGA. Другими словами, ширина ракетки всегда должна составлять 1/32 ширины экрана, диаметр шарика всегда должен составлять 1/16 ширины экрана.
Каким будет правильный способ рисования приложения? Он будет работать в стандартном SurfaceView, который будет отображаться на Canvas
.
Предположим, у меня есть PNG с высоким разрешением для ракетки, мяча и шрифта игры (табло, главное меню).
Могу ли я узнать физическое разрешение, затем масштабируйте Canvas
с помощью шкалы (float sx, float sy)
, чтобы все мои холсты (в QVGA и WVGA) имели одинаковое виртуальное разрешение, а затем рисовать одни и те же примитивы в каждой позиции на каждом размере экрана?
Или я могу как-то использовать на холсте пиксели, не зависящие от плотности (провал)?