如何使用 Libgdx 获取平铺地图对象的 x 和 y 位置?
how to get the x and y position of a tiled map object with Libgdx?
我已经在 Internet 上搜索了一段时间,实际上没有任何帮助,但我一直在努力弄清楚如何获取 Tiled 地图对象的 x 和 y 位置。
我尝试使用 map1.getLayers().get(3).getObjects().get(1).getX()
获取 x 位置,但 getX()
方法 returns 出现错误:无法解析 'MapObject' 中的方法 'getX' .
我可以使用另一种方法还是应该完全改变我的方法?
map1.getLayers().get(3).getObjects().get(1)
会 return 一个 MapObject, that doesn't define a getX()
method. Depending on the type of the MapObject
you need to cast it, to get it's position. E.g. if it's a RectangleMapObject 你可以这样做:
MapObject mapObject = map1.getLayers().get(3).getObjects().get(1);
if (mapObject instanceof RectangleMapObject) {
RectangleMapObject rectangleMapObject = (RectangleMapObject) mapObject;
// now you can get the position of the rectangle like this:
Rectangle rectangle = rectangleMapObject.getRectangle();
float x = rectangle.getX();
float y = rectangle.getY();
// TODO maybe add width and hight ...
}
如果不是 RectangleMapObject,则需要检查 MapObject 的其他子类。
我已经在 Internet 上搜索了一段时间,实际上没有任何帮助,但我一直在努力弄清楚如何获取 Tiled 地图对象的 x 和 y 位置。
我尝试使用 map1.getLayers().get(3).getObjects().get(1).getX()
获取 x 位置,但 getX()
方法 returns 出现错误:无法解析 'MapObject' 中的方法 'getX' .
我可以使用另一种方法还是应该完全改变我的方法?
map1.getLayers().get(3).getObjects().get(1)
会 return 一个 MapObject, that doesn't define a getX()
method. Depending on the type of the MapObject
you need to cast it, to get it's position. E.g. if it's a RectangleMapObject 你可以这样做:
MapObject mapObject = map1.getLayers().get(3).getObjects().get(1);
if (mapObject instanceof RectangleMapObject) {
RectangleMapObject rectangleMapObject = (RectangleMapObject) mapObject;
// now you can get the position of the rectangle like this:
Rectangle rectangle = rectangleMapObject.getRectangle();
float x = rectangle.getX();
float y = rectangle.getY();
// TODO maybe add width and hight ...
}
如果不是 RectangleMapObject,则需要检查 MapObject 的其他子类。