2016-03-03 255 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”方法。 –