我想在我的LibGdx项目中包含一个TiledMap。
我做了这样的编码。
public static final AssetDescriptor<TiledMap> tMap = new AssetDescriptor<TiledMap>("tmap.tmx",
TiledMap.class);
在MyGdxGame类中,也称为加载器:
assetManager = new AssetManager();
//tmx loading
assetManager.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver()));//loader for tiledmap
assetManager.load("tmap.tmx", TiledMap.class);
assetManager.finishLoading();
游戏内幕类:
private TiledMap tiledMap;
private OrthogonalTiledMapRenderer orthogonalTiledMapRenderer;
public void show() {
tiledMap = assetManager.get(Assets.tMap);
orthogonalTiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap,batch);
orthogonalTiledMapRenderer.setView(game.camera);
}
public void render(float delta) {
batch.setProjectionMatrix(game.camera.projection);
batch.setTransformMatrix(game.camera.view);
orthogonalTiledMapRenderer.render();
}
但TiledMap图像在运行项目时没有显示。运行时没有显示任何错误。 还有如何使用tilemaps管理相机?
答案 0 :(得分:1)
我以这种方式使用
AssetManager manager = new AssetManager();
manager.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver()));
manager.load("maps/tile.tmx", TiledMap.class);
加载所有资产时。
TiledMap tiledMap=manager.get("maps/tile.tmx");
OrthogonalTiledMapRenderer renderer=new OrthogonalTiledMapRenderer(tiledMap);
以这种方式渲染:
public void render(float delta){
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
game.camera.position.set(...); //set position according to your requirement
game.camera.update();
orthogonalTiledMapRenderer.setView(game.camera);
orthogonalTiledMapRenderer.render();
orthogonalTiledMapRenderer.getBatch(); // for batch related work
}
可能会有所帮助。
感谢。