我正在尝试在测试游戏中使用TiledMap
,但我遇到了大小问题。我正在使用宽度为160,高度为90的ExtendViewport
。我猜问题是平铺地图是使用屏幕尺寸绘制的,因为它已经放大了。我是否需要2个单独的相机用于平铺地图和游戏的其余部分(玩家,敌人......)?
这是我的所有代码:
public class Main extends Game {
private OrthographicCamera camera;
private ExtendViewport viewport;
private TiledMap tiledMap;
TiledMapRenderer tiledMapRenderer;
@Override
public void create () {
camera = new OrthographicCamera(160, 90);
camera.setToOrtho(false, 160, 90);
camera.update();
viewport = new ExtendViewport(160, 90, camera);
viewport.apply();
tiledMap = new TmxMapLoader().load("map1.tmx");
tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap);
}
@Override
public void render () {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
tiledMapRenderer.setView(camera);
tiledMapRenderer.render();
}
@Override
public void resize(int width, int height) {
viewport.update(width, height, false);
}
@Override
public void dispose () {
}
}
由于
答案 0 :(得分:1)
OrthogonalTiledMapRenderer的第二个参数是unitScale。单位比例告诉渲染器有多少像素映射到单个世界单位。它默认为1.
因此,在您的情况下,一个像素等于平铺地图中的一个单位大小。尝试更改unitScale参数。
https://github.com/libgdx/libgdx/wiki/Tile-maps#rendering-tiled-maps