我正在使用 libgdx 渲染一个 32x32 瓦片(每个瓦片为 32x32 像素)的地图。我为此使用了 OrthogonalTiledMapRenderer。然后,我在屏幕上渲染一个简单的纹理,可以使用上/下/右/左移动。我想要的是根据地图图块位置获取纹理的位置。例如,如果纹理位于 tile (0, 0) 的顶部,我想知道这一点。到目前为止,我已经尝试使用camera.unproject(texcoordpositionVector)
来获得这些,但它并没有始终如一地工作。
编辑:这是地图渲染器和相机的设置方式:
SCALE = 10;
w = Gdx.graphics.getWidth();
h = Gdx.graphics.getHeight();
map = new TmxMapLoader().load("map.tmx");
camera = new OrthographicCamera(SCALE * (w / h), SCALE);
renderer = new OrthogonalTiledMapRenderer(map, 1/32f);
然后,渲染:
camera.update();
camera.apply(Gdx.graphics.getGL10());
renderer.setView(camera);
renderer.render();