1

我正在使用 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();
4

1 回答 1

1

如果您的纹理是使用与地图相同的相机绘制的,那么它应该已经在瓦片空间中。如果您使用的是不同的相机,则需要使用该相机投影位置,然后使用地图相机取消投影。

于 2013-06-13T13:35:34.770 回答