2016-03-03 102 views
0

下面的代碼不斷渲染黑屏......任何想法爲什麼?我把base.tmx放在桌面文件夾中,並使用平鋪來創建它。我把.tmx放在錯誤的文件夾中了嗎?它使我瘋狂。TiledMap不會呈現

public class GameScreen extends ScreenAdapter { 

OrthographicCamera camera; 
TiledMap tiledmap; 
TiledMapRenderer tiledMapRenderer; 

public void show() 
{ 
    camera=new OrthographicCamera(); 
    camera.setToOrtho(false); 
    camera.update(); 
    tiledmap= new TmxMapLoader().load("base.tmx"); 
    tiledMapRenderer=new OrthogonalTiledMapRenderer(tiledmap); 
} 
public void render() 
{ 
    Gdx.gl.glClearColor(1, 1, 1, 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(); 
} 

}

+0

你可以請顯示你設置這個屏幕的代碼也遊戲也。 –

+0

「公共類TownRPG擴展遊戲{ \t \t @覆蓋 \t公共無效創建(){ \t \t setScreen(新GameScreen()); \t} \t }'你是說這個? –

+0

是的,沒關係。請檢查我的答案。 –

回答

0

您沒有設置相機的寬度和高度。你也應該用delta參數正確地覆蓋ScreenAdapter的渲染方法。這是你的代碼的更新版本:

public class GameScreen extends ScreenAdapter { 

OrthographicCamera camera; 
TiledMap tiledmap; 
TiledMapRenderer tiledMapRenderer; 

    public void show() 
    { 
     float w = Gdx.graphics.getWidth(); 
     float h = Gdx.graphics.getHeight(); 

     camera=new OrthographicCamera(); 
     camera.setToOrtho(false,w,h); 
     camera.update(); 
     tiledmap= new TmxMapLoader().load("base.tmx"); 
     tiledMapRenderer=new OrthogonalTiledMapRenderer(tiledmap); 
    } 

    public void render(float delta) 
    { 
     Gdx.gl.glClearColor(1, 1, 1, 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(); 
    } 
} 
+0

仍然黑屏 –

+0

我認爲你的渲染方法是錯誤的,如果它不是僞代碼。您不重寫ScreenAdapter的渲染方法,您在渲染方法中沒有delta參數。選中此項:https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/ScreenAdapter.html –

+0

因此,您的渲染方法不是從任何類中調用的,您應該正確覆蓋「render」方法。 –