2013-06-14 2 views
2

Прежде всего, некоторые объяснения ситуации.Как скорректировать соотношение форматов отображения плиточных карт в libgdx?

Init плиточный карта Код:

map = new TmxMapLoader().load("maps/map.tmx"); 
mapRenderer = new OrthogonalTiledMapRenderer(map, 1f/32f); 

Rendering Код:

mapRenderer.setView(cam); 
mapRenderer.render(); 

Проблема. У меня квадратная карта и не квадратный экран. Карта заполняет весь экран. Из-за того, что карта неправильно масштабируется (ячейки 32x32 преобразуются в ячейки размером 32x40 в соответствии с масштабированием экрана X и Y). Как я могу отображать карту без заполнения всего экрана?

+0

Нам нужно увидеть настройку вашей камеры. Я предполагаю, что окно просмотра камеры не определено должным образом. –

+0

Моя камера: cam = new OrthographicCamera (MyWorld.CAMERA_WIDTH, MyWorld.CAMERA_HEIGHT); – Alex

+0

И значения 'MyWorld.CAMERA_WIDTH' и' MyWorld.CAMERA_HEIGHT' являются? –

ответ

4

На основе замечаний по этому вопросу ...

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

float w = Gdx.graphics.getWidth(); 
float h = Gdx.graphics.getHeight(); 

MyWorld.CAMERA_HEIGHT = 10; // Fill the height of the screen 
MyWorld.CAMERA_WIDTH = 10 * (w/h); // Account for the aspect ratio 

camera = new OrthographicCamera(MyWorld.CAMERA_WIDTH, MyWorld.CAMERA_HEIGHT); 
+0

Большое спасибо. Но как насчет Stage? Могу ли я использовать «новый MyWorld (Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), ...)»? Или я должен начать квадратную сцену? MyWorld extends Stage – Alex

+1

Ваша сцена может использовать фактические размеры экрана, если хотите. Вероятно, вам тоже не понадобится квадратная сцена. –

 Смежные вопросы

  • Нет связанных вопросов^_^