【发布时间】:2015-09-03 20:20:20
【问题描述】:
问题
我似乎无法正确渲染平铺地图。我使用 LibGDX 作为加载地图的库(版本 1.6.0)。
视频演示
我制作了一个视频来向您展示实际问题,并通过跳过解释它的整个过程使事情变得更容易。 Here is a link 给它。
我用过的代码
protected Level level;
protected OrthogonalTiledMapRenderer mapRenderer;
protected OrthographicCamera camera;
protected TiledMap map;
protected MainGameLoop game;
protected SpriteBatch batch;
private BitmapFont font;
private int w, h;
public Level1(MainGameLoop game) {
this.game = game;
}
@Override
public void show() {
w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();
int CAMERA_WIDTH = 800;
int CAMERA_HEIGHT = 450 * (w / h);
camera = new OrthographicCamera(CAMERA_WIDTH, CAMERA_HEIGHT);
camera.setToOrtho(false);
camera.update();
map = new TmxMapLoader().load("maps/map1.tmx");
mapRenderer = new OrthogonalTiledMapRenderer(map);
Gdx.input.setInputProcessor(this);
font = new BitmapFont();
font.setColor(Color.BLUE);
batch = new SpriteBatch();
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
mapRenderer.setView(camera);
mapRenderer.render();
batch.begin();
font.draw(batch, "Camera zoom: " + camera.zoom, 40, 40);
batch.end();
}
@Override
public void resize(int width, int height) {
camera.viewportWidth = width;
camera.viewportHeight = height;
camera.update();
}
@Override
public void dispose() {
mapRenderer.dispose();
map.dispose();
background.dispose();
Gdx.input.setInputProcessor(null);
}
@Override
public boolean scrolled(int amount) {
camera.zoom += amount;
camera.update();
return true;
}
// Here go the rest of the methods, such as pause, resume, hide, keyDown, keyUp, keyTyped, touchDown, touchUp, touchDragged & mouseMoved.
我尝试过的解决方案
我尝试为相机的 x 和 y 使用不同的数字,但没有成功。我还尝试将相机移动到正确的位置(硬编码),以及使用另一张地图(不同的瓦片图和尺寸),但这也不起作用。
结论
我似乎找不到解决此问题的方法。任何帮助深表感谢。非常感谢。
【问题讨论】:
-
“平铺地图未正确渲染”是什么意思?我看了视频,但看不到,有什么问题。
-
@JoOko 它被放置在整个窗口的随机位置,正如您在视频中看到的那样,地图的角落不在窗口的角落。换句话说,地图不会拉伸以适应屏幕的尺寸,而只是“坐”在那里,无论我将相机的 x 和 y 坐标放在哪里.我希望这能解决问题。任何帮助深表感谢。提前致谢。
标签: java android libgdx tiled tmx