我在地图上创建了一张平铺的地图,应该是这样的:
但是,当我渲染它时,我什么也没有得到,只有我的背景色和黑色条,我的对象应该在其中:
我不明白问题是什么,这是我正在渲染的屏幕代码:
public class GameScreen implements Screen {
private OrthographicCamera cam;
private MyGdxGame myGame;
private Vector3 pos;
private Viewport gameport;
private TmxMapLoader mapLoader;
private TiledMap map;
private OrthogonalTiledMapRenderer mapRenderer;
public GameScreen(MyGdxGame game){
this.myGame = game;
pos = new Vector3(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2, 0);
cam = new OrthographicCamera();
cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
gameport = new ExtendViewport(1060, 2060, cam);
mapLoader = new TmxMapLoader();
map = mapLoader.load("game_map1.tmx");
mapRenderer = new OrthogonalTiledMapRenderer(map);
}
@Override
public void show() {
}
public void update(float delta){
handleInput(delta);
cam.update();
}
private void handleInput(float delta) {
if(Gdx.input.isTouched()){
pos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
// cam.unproject(pos);
cam.position.x = Gdx.input.getX();
cam.position.y = Gdx.input.getY();
}
}
@Override
public void render(float delta) {
update(delta);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
mapRenderer.setView(cam);
mapRenderer.render();
// myGame.sr.begin(ShapeRenderer.ShapeType.Filled);
// myGame.sr.setColor(Color.BLUE);
// myGame.sr.circle(pos.x, pos.y, 50);
// myGame.sr.end();
}
@Override
public void resize(int width, int height) {
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
}
@Override
public void dispose() {
}
}
有人在解释这个问题是什么?
因此,经过一整天的尝试,我终于弄清楚了:
我使用了多张图像或“拼贴集”来创建地图。我最终要做的是使用TexturePacker将所需的零件打包到单个.png中,并仅使用该png / tile设置来创建地图。