libgdx 地圖

最近周末有空試了試libgdx這個游戲引擎,本來呢看了也看了別的引擎比如JME,F(xiàn)XGL這些。JME看起來社區(qū)沒libgdx活躍。fxgl是個教學(xué)項目。所以還是專注看libgdx吧。至于cocos2d和U3d呢開發(fā)語言是C++,雖然會但是不精通,還是省點腦細(xì)胞吧。

進(jìn)入正題,libgdx中Map這個類是地圖的超類。Map中的結(jié)構(gòu)很簡單。Map,Layers,Layer,MapObjects,MapObject這幾個類描述了地圖的圖層和元素。當(dāng)然一般我們開發(fā)的時候一般使用瓦片地圖 TiledMap 。 我們詳細(xì)講這個。

地圖編輯器

可以使用這個地圖編輯器,免費(fèi)的 介紹 — 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實現(xiàn),否則地圖顯示會有問題。我在這里就遇到了坑,用正常的平鋪渲染器渲染六邊形地圖就顯示異常。

還有一個點是如果需要渲染自定義的地圖對象,比如在加載地圖之后想要增加一些自定義的MapObject進(jìn)去,這時候需要實現(xiàn)使用的地圖渲染器的renderObject方法,TiledMapRenderer默認(rèn)是不實現(xiàn)這個方法的。

至于渲染地圖時坐標(biāo)的問題,后面有時間再研究。

參考鏈接:libgdx之瓦片地圖(TiledMap)_代碼世界-CSDN博客

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容