#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.
Еще раз спасибо!