【发布时间】:2013-06-12 23:42:40
【问题描述】:
我正在使用 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();
【问题讨论】:
-
您是如何设置相机和/或地图渲染器的视图的?
camera.unproject是正确的起点,但您可能需要根据您的单位规模调整结果。 -
@P.T.我编辑了我的问题以包含该信息。