【问题标题】:Libgdx - TMX map not renderedLibgdx - TMX 地图未呈现
【发布时间】:2016-07-30 12:47:57
【问题描述】:

我正在制作一款 2D 安卓游戏。问题是我的平铺游戏地图没有渲染,尽管我的 GUI 类很好。看起来renderer.render() 从未被调用过。

这是我手机的截图。

它应该渲染这个平铺地图,但它没有。

主类:

public class Main extends ApplicationAdapter implements Screen {
    private ZombieGame game;
    private OrthographicCamera camera;
    private Viewport gameView;
    private GUI gui;
    private TmxMapLoader mapLoader;
    private TiledMap map;
    private OrthogonalTiledMapRenderer renderer;

    public Main(ZombieGame game){
        this.game = game;

        camera = new OrthographicCamera();
        gameView = new FitViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), camera);

        gui = new GUI(game.batch);

        mapLoader = new TmxMapLoader();
        map = mapLoader.load("level1.tmx");
        renderer = new OrthogonalTiledMapRenderer(map);
        camera.position.set(gameView.getWorldWidth() / 2, gameView.getWorldHeight() / 2, 0);
    }

    @Override
    public void show(){

    }

    @Override
    public void hide(){

    }

    @Override
    public void create () {

    }

    public void keyEvent(float dt){
        if(Gdx.input.isTouched()){
            camera.position.x -= 100 * dt;
            System.out.println("COORD: " + camera.position.x);
        }
    }

    public void update(float dt){
        keyEvent(dt);
        camera.update();
        renderer.setView(camera);
    }

    @Override
    public void render(float delta) {
        update(delta);

        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        renderer.render();

        game.batch.setProjectionMatrix(gui.stage.getCamera().combined);
        gui.stage.draw();
    }

    @Override
    public void dispose() {

    }
}

ZombieGame.class:

public class ZombieGame extends Game{
    public SpriteBatch batch;

    @Override
    public void create(){
        batch = new SpriteBatch();
        setScreen(new Main(this));
    }

    @Override
    public void render(){
        super.render();
    }
}

【问题讨论】:

  • 你能补充一些关于程序应该做什么的细节吗?
  • 我添加了该平铺地图的图像。
  • 修正错别字和轻微的机械问题。

标签: java android libgdx


【解决方案1】:

我认为你应该在create()中使用setToOrtho()方法,

   camera.setToOrtho(false,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());

而不是 FitViewport,

gameView = new FitViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), camera);
 camera.position.set(gameView.getWorldWidth() / 2, gameView.getWorldHeight() / 2, 0);

试一试,然后告诉我。谢谢...

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 2014-09-18
    • 2013-08-05
    • 2014-10-11
    • 2016-06-23
    • 1970-01-01
    • 2016-02-13
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多