2

まずは状況説明から。

タイル マップ コードの初期化:

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

レンダリング コード:

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

問題。正方形のマップと非正方形の画面があります。画面いっぱいに地図が表示されます。そのため、マップは正しくスケーリングされません (画面の X および Y スケーリングに従って、32x32 セルが 32x40 セルに変換されます)。画面全体を埋めずにマップをレンダリングするにはどうすればよいですか?

4

1 に答える 1

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);
于 2013-06-14T17:16:00.307 に答える