libGdx地图编辑api

来源:互联网 发布:asp防止sql注入代码 编辑:程序博客网 时间:2024/06/06 00:16

由于国内,甚至国外关于libGDX的资料都比较少,所以打算分享一下我对libGDX理解。


我学一个类通常都是搞清楚它代表的是什么对象,这样就够了。面向对象的思想嘛,知道它代表什么就大概知道它有什么方法和字段了。下面开始介绍。


关于制作地图大家可以下载Tiled地图编辑器自己搞搞,很简单,就不多说了


1.TiledMap类

          tiled就是平铺的意思,连起来就是平铺的地图,该类代表的就是一张完整的地图。


2.MapLayer类

      该类代表地图层。什么是地图层?类似Photoshop中图片跟图层的关系,许多MapLayer层层叠加就组成了TiledMap类。


3.MapObjects

                   该类代表的是TiledMap中的对象块。它的位置决定精灵从哪里出来,还可以给它设置属性,可以理解为它就是在地图中的精灵。


4.Cell

                   该类代表的是地图层中的单元格。什么是单元格?就是一个个组成TiledMap的格子。


5.Tile类
           tile 就是图片中组成地图的最小单位,不是cell,tile可以重复使用,一个cell包含一个tile,但为节省资源tile重复使用了,就是说一个TiledMap可以由很多重复tile组成


搞清楚了上面的关系之后libGDX的地图处理api要怎么用就大概可以推理得到了。


废话不多说,上马!


package com.mygdx.game;import com.badlogic.gdx.ApplicationAdapter;import com.badlogic.gdx.Gdx;import com.badlogic.gdx.graphics.Camera;import com.badlogic.gdx.graphics.GL20;import com.badlogic.gdx.graphics.OrthographicCamera;import com.badlogic.gdx.graphics.Texture;import com.badlogic.gdx.graphics.g2d.Animation;import com.badlogic.gdx.graphics.g2d.Animation.PlayMode;import com.badlogic.gdx.graphics.g2d.BitmapFont;import com.badlogic.gdx.graphics.g2d.PixmapPacker;import com.badlogic.gdx.graphics.g2d.Sprite;import com.badlogic.gdx.graphics.g2d.SpriteBatch;import com.badlogic.gdx.graphics.g2d.TextureRegion;import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeBitmapFontData;import com.badlogic.gdx.maps.MapObject;import com.badlogic.gdx.maps.MapObjects;import com.badlogic.gdx.maps.tiled.TiledMap;import com.badlogic.gdx.maps.tiled.TiledMapRenderer;import com.badlogic.gdx.maps.tiled.TiledMapTileLayer;import com.badlogic.gdx.maps.tiled.TiledMapTileLayer.Cell;import com.badlogic.gdx.maps.tiled.TmxMapLoader;import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer;public class SteedLibGDXGame extends ApplicationAdapter {private TiledMap tiledMap;private TiledMapTileLayer tiledMapTileLayer;private TiledMapRenderer tiledMapRenderer;//用于 渲染TiledMapprivate Cell cell;private MapObject mapObject;private MapObjects mapObjects;@Overridepublic void create () {//加载assets目录下名为a1.tmx的地图,获得TiledMaptiledMap = new TmxMapLoader().load("a1.tmx");//获取第一层地图层,get中的参数表示第几层tiledMapTileLayer = (TiledMapTileLayer) tiledMap.getLayers().get(0);//获得该层中的所有对象块mapObjects = tiledMapTileLayer.getObjects();//获取第一个对象块mapObject = mapObjects.get(0);//获取该层位于(0,0)的单元格cell = tiledMapTileLayer.getCell(0, 0);//new 一个tiledmap渲染器tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap);}@Overridepublic void render () {Gdx.gl.glClearColor(1, 1, 0.5f, 1);Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);tiledMapRenderer.render();//渲染TiledMap}}








 

0 0
原创粉丝点击