В чем измеряется Gdx.graphics.getWitdth()?

#android #graphics #libgdx #textures #scale

#Android #графика #libgdx #Текстуры #масштаб

Вопрос:

Я часто использую getWidth и getHeight для масштабирования текстур в моем проекте Libgdx. В каких единицах это (пикселях?) Кроме того, если я хочу, чтобы текстура выглядела согласованно на разных телефонах, должен ли я использовать getWidth / Height для масштабирования или какое-либо числовое значение, например width = 100, height = 50?

Ответ №1:

Да, getWidth и getHeight оба измеряются в пикселях. Хотя вы можете использовать их для своих измерений, обычно для получения единообразного представления на разных телефонах требуется использовать какую-либо камеру (для 2d-игр, как правило, ортографическую камеру).

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

 SpriteBatch batch = new SpriteBatch();
OrthographicCamera camera = new OrthographicCamera(800, 600);
//some code here
batch.setProjectionMatrix(camera.combined);
batch.begin();
//draw your textures here
batch.end();
  

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

Комментарии:

1. будет ли камера автоматически растягиваться на весь экран телефона?

2. @henzdaddy да, камера просто меняет систему координат. Окно просмотра камеры должно заполнять весь экран

Ответ №2:

@clearlyspam23 это именно то, что я ищу, спасибо! Просто примечание, настройте его следующим образом:

 OrthographicCamera camera = new OrthographicCamera();
camera.setToOrtho(false, 800, 600);
  

Другой способ выглядит так, как будто он расположил источник камеры на 800, 600.

Еще раз спасибо!