libgdx 地图

最近周末有空试了试libgdx这个游戏引擎,本来呢看了也看了别的引擎比如JME,FXGL这些。JME看起来社区没libgdx活跃。fxgl是个教学项目。所以还是专注看libgdx吧。至于cocos2d和U3d呢开发语言是C++,虽然会但是不精通,还是省点脑细胞吧。

进入正题,libgdx中Map这个类是地图的超类。Map中的结构很简单。Map,Layers,Layer,MapObjects,MapObject这几个类描述了地图的图层和元素。当然一般我们开发的时候一般使用瓦片地图 TiledMap 。 我们详细讲这个。

地图编辑器

可以使用这个地图编辑器,免费的 介绍 — Tiled

加载地图

地图编辑好之后,保存得到一个tmx文件(可能还有图块文件),加载到程序中。


private final TiledMap map;
private final TmxMapLoader loader;
private HexagonalTiledMapRenderer renderer;
private OrthographicCamera camera;
private Viewport viewport;

// 加载地图
loader = new TmxMapLoader();
map = loader.load("map/hex.tmx");
renderer = new HexagonalTiledMapRenderer(map);

渲染地图

渲染地图需要用到 TiledMapRenderer, 注意的是不同的图类型需要使用不同的TiledMapRenderer实现,否则地图显示会有问题。我在这里就遇到了坑,用正常的平铺渲染器渲染六边形地图就显示异常。

还有一个点是如果需要渲染自定义的地图对象,比如在加载地图之后想要增加一些自定义的MapObject进去,这时候需要实现使用的地图渲染器的renderObject方法,TiledMapRenderer默认是不实现这个方法的。

至于渲染地图时坐标的问题,后面有时间再研究。

参考链接:libgdx之瓦片地图(TiledMap)_代码世界-CSDN博客

你可能感兴趣的:(libgdx 地图)