2013-11-03 27 views
1

我正在使用libgdx,如果我不嘗試設置相機的位置,我的遊戲渲染效果會非常好。但是,如果我只是添加這一行代碼:camera.position.set(0f,0f,0f),它會導致白線顯示在我所有的精靈上。libgdx camera.position.set導致撕裂

之前: enter image description here

添加一個代碼行後:camera.postion.set(0F,0F,0F) enter image description here

這些圖像是隨機地圖所以佈局是不同的。唯一改變的是白線。相機確實去了位置(0,0,0)。 這可能是什麼原因造成的?它基本上是將1個白色像素添加到我的精靈頂部。我有一個512x512的瓷磚板,其中有64x64瓷磚。下面是相關代碼

內置的屏幕類:

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

    this.camera = new OrthographicCamera(w, h); 

    this.camera.setToOrtho(true, w, h); 
    this.stage.setCamera(this.camera); 
    camera.update(); 

    this.input = new InputHandler(this.camera); 
    Gdx.input.setInputProcessor(this.input); 

    dungeon = new Dungeon(DungeonGenerator.generateDungeonMap()); 

    renderer = new OrthogonalTiledMapRenderer(dungeon); 

    this.player = new Player(dungeon); 
    this.stage.addActor(this.player); 

    camera.position.set(0f, 0f, 0f); 

} 

@Override 
public void render(float delta) 
{ 

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

    camera.update(); 

    renderer.setView(camera); 
    renderer.render(); 

    batch.begin(); 
    font.draw(batch, "FPS: " + Gdx.graphics.getFramesPerSecond(), 10, 20); 
    font.draw(batch, "camera: " + camera.position, 10, 50); 
    font.draw(batch, "Stage:" + this.stage.getCamera().position, 10, 80); 
    batch.end(); 

    //update and render stage actors 
    stage.act(delta); 
    stage.draw(); 



} 
+0

這可能適用http://stackoverflow.com/questions/15883120/orthogonaltiledmaprenderer-and-normal-spritebatch-renders-a-white-box – arynaq

+0

謝謝。我剛讀過它。我正在嘗試解決方案,但我不認爲這是同一問題 – theDazzler

+0

我嘗試了不同的事情,使用batch.begin()和batch.end()就像鏈接中的解決方案,但它沒有工作 – theDazzler

回答

1

我想通了。這個問題是由我的spritesheet有白色背景引起的。在對我的Spritesheet進行了一些更改之後,我必須導出該表單而不隱藏我的白色背景。我只是將alpha背景添加回spritesheet,並且再次正常工作。