2016-07-30 4 views
0

2D Android 게임을 제작 중입니다. 문제는 내 GUI 클래스가 괜찮지 만 타일링 된 게임 맵이 렌더링되지 않는다는 것입니다. renderer.render()은 절대로 호출되지 않습니다.Libgdx - TMX지도가 렌더링되지 않았습니다.

여기 내 휴대 전화에서 화면을 촬영합니다.

enter image description here

그것은이 타일 맵을 렌더링해야하지만, 그렇지 않습니다. enter image description here

Main.class가 :

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(); 
    } 
} 
+0

프로그램에서 수행 할 작업에 대한 세부 정보를 추가 할 수 있습니까? – Shawn

+0

그 타일 맵의 이미지를 추가했습니다. – iUuax

+0

오타 및 사소한 기계적인 문제가 수정되었습니다. – Prune

답변

0

나는, 당신이 에 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); 

그냥 시도해주세요. 감사합니다 ...

관련 문제