2016-03-14 95 views
2

我在Android Studio中玩LIBGDX,我试图插入一个图像作为我的游戏纹理。我正在使用例如包含的“badlogic.jpg”。在DesktopLauncher和我的Nexus 7上,但在我的Samsung Galaxy Note 3上,图像显示正常,但出现了一些问题。我希望这些截图更好地解释:Samsung - Nexus 7LIBGDX - 纹理故障

这万一我GameRenderer类,它可以帮助:

public class GameRenderer { 

    public static Texture badLogic; 
    private SpriteBatch batch; 

    private GameWorld myWorld; 

    private OrthographicCamera cam; 

    public GameRenderer(GameWorld world) { 
     myWorld = world; 

     cam = new OrthographicCamera(); 
     cam.setToOrtho(true, 1920, 1080); 

     batch = new SpriteBatch(); 

     badLogic = AssetLoader.badLogic; 


    } 

    public void render(float runTime) { 

     batch.begin(); 
     batch.draw(badLogic, 100, 100); 
     batch.end(); 

    } 

} 

而且GameScreen:

public class GameScreen implements Screen { 

private GameWorld world; 
private GameRenderer renderer; 
private float runTime; 

public GameScreen() { 

    world = new GameWorld(); 
    renderer = new GameRenderer(world); 

} 
@Override 
public void show() { 

} 

@Override 
public void render(float delta) {    
    Gdx.app.log("FPS:", (1/delta) + ""); 
    runTime += delta; 
    world.update(delta); 
    renderer.render(runTime); 

} 

@Override 
public void resize(int width, int height) { 

} 

@Override 
public void pause() { 

} 

@Override 
public void resume() { 

} 

@Override 
public void hide() { 

} 

@Override 
public void dispose() { 

} 

}

这甚至一个问题与代码或是我的设备?

回答

0

通过添加求解Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

这部分在GameRenderer中:

public void render (float runTime) { 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     batch.begin(); 
     batch.draw(badLogic, 0, 0); 
     batch.end(); 
    } 
1

的问题是,你们已经做出了纹理静态

 public static Texture badLogic; 

应该

 public Texture badLogic; 

的Android与应用程序生命周期结束后卸载静态内容的问题,这就是为什么你看到这些毛刺

+0

这并没有改变任何视觉效果,但我会牢记这一点。自己分类问题,所以不用担心。谢谢! –

+0

是的。这是解决问题的部分解决方案,但它很好理解。总是处理一切静态或你会面临奇怪的问题。 –