【发布时间】:2017-07-14 01:59:40
【问题描述】:
我很难使用 LibGdx 在我的 android 应用程序上正确显示地图。首先是我的代码:
public class PlayState extends State {
private LittleMan littleMan;
private TiledMap map;
OrthogonalTiledMapRenderer tiledMapRenderer;
OrthographicCamera camera;
public PlayState(GameStateManager gsm) {
super(gsm);
littleMan = new LittleMan(50,100);
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera();
camera.setToOrtho(false, w,h);
camera.update();
TmxMapLoader loader = new TmxMapLoader();
map = loader.load("ste_barbe_map.tmx");
tiledMapRenderer = new OrthogonalTiledMapRenderer(map);
}
@Override
protected void handleInput() {
}
@Override
public void update(float dt) {
}
@Override
public void render(SpriteBatch sb) {
// if viewport modified
// sb.setProjectionMatrix(cam.combined);
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
tiledMapRenderer.setView(camera);
tiledMapRenderer.render();
/*
sb.begin();
sb.draw(littleMan.getTexture(),littleMan.getPosition().x,littleMan.getPosition().y);
sb.end();
*/
}
@Override
// free some ressources
public void dispose() {
}
}
所以当我尝试运行应用程序并调用渲染方法时,我只会得到一个红色背景,上面什么都没有。 以下是我尝试过的一些事情:
- 使用只有一行图块的较小地图,它可以正确显示(即使我不确定它的位置是否正确):
- 玩转缩放:我可以显示地图,但地图要么非常小,要么我只能看到边缘
将此行更改为:tiledMapRenderer = new OrthogonalTiledMapRenderer(map,0.5f);我得到:
还有这行:tiledMapRenderer = new OrthogonalTiledMapRenderer(map,1/8f);
我得到这张地图的非常缩小的图像:
有谁知道我做错了什么?也许我的 tmx 文件不好,也许是相机的问题,或者我真的不知道的其他问题。 感谢您的帮助!
【问题讨论】:
-
请告诉我一个平铺尺寸(以像素为单位)?以及您想在屏幕上一次显示多少个平铺和垂直平铺?
-
还不知道,现在我只想能够显示所有内容并查看地图的外观。之后我可以调整某些东西。
-
当你创建 .tmx 文件时,你决定一个瓦片尺寸和整个地图大小(瓦片的宽度和高度数)?
-
我可能正在做一些事情,这是地图的外观(其他人为我制作的)。难道是即时渲染空的部分? gyazo.com/29ef2f197921bbd15bc662fbfae88ca6
标签: java android libgdx rendering tmx