Как сделать стандартный игровой дизайн/макет через Surfaceview

Я использовал SurfaceView в своей игре. Прямо сейчас я создал макет с учетом одного устройства (320 x 480). Макет игры выглядит красиво, и все функции работают правильно. Но когда я вижу ту же игру на другом устройстве с другим размером (размером экрана), макет кажется неправильным.

Итак, есть ли какое-либо свойство, метод, формула или вспомогательное руководство, с помощью которого я могу создавать дизайн/макет игры через холст, который выглядит одинаково на всех устройствах с размером экрана.


person Devon Smith    schedule 19.09.2011    source источник
comment
Взгляните сюда - stackoverflow.com/ вопросы/7452412/   -  person datalost    schedule 19.09.2011


Ответы (1)


Есть один простой совет: никогда не используйте абсолютные координаты на SurfaceView. Позиция каждого элемента должна рассчитываться во время выполнения в зависимости от фактического размера экрана. Таким образом вы получите макет, который будет выглядеть одинаково на всех устройствах. Надеюсь это поможет.

person Egor    schedule 19.09.2011
comment
Спасибо за быстрый ответ. Есть ли какая-то конкретная формула или метод, который можно использовать. Вычисление положения для каждого объекта может быть несколько сложным в моем случае. Или есть какой-нибудь пример кода игры, который может помочь! Еще раз, спасибо за помощь!! - person Devon Smith; 19.09.2011
comment
@ Девон Смит, никаких конкретных формул или чего-то еще, просто идея. Например, вам нужно расположить объект на расстоянии 20 пикселей по оси X на телефоне HVGA. Рассчитайте coeff = ширина телефона HVGA / 20, а затем используйте (фактическая ширина / coeff) вместо 20. Я надеюсь, что идея ясна, в любом случае, если у вас есть еще вопросы, не стесняйтесь спрашивать. - person Egor; 19.09.2011