我正在使用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();
答案 0 :(得分:1)
如果使用与地图相同的相机绘制纹理,则它应该已经位于图块空间中。如果您使用的是其他相机,则需要使用该相机投影位置,然后使用地图相机取消投影。