2015-04-17 100 views
0

我的應用程序有問題。在iPhone上(測試5c,5s,6),我有兩個黑色條紋兩側(在Android上看起來都很好)。 我如何處置它們?libgdx ios landscape not fullscreen

two black stripes on both sides

這是我繪製

@Override 
public void create() { 

    mWidth = Gdx.graphics.getWidth(); 
    mHeight = Gdx.graphics.getHeight(); 
    mScale = Math.max(mWidth, mHeight)/20f; 

    backgroundTexture = new Texture(Gdx.files.internal("backBlue.png")); 

    ShaderProgram.pedantic = false; 

    backgroundShader = new ShaderProgram(VERT, FRAG); 
    if (!backgroundShader.isCompiled()) { 
     System.err.println(backgroundShader.getLog()); 
     System.exit(0); 
    } 
    if (backgroundShader.getLog().length()!=0) 
     System.out.println(backgroundShader.getLog()); 

    backgroundBatch = new SpriteBatch(5, backgroundShader); 
} 


@Override 
public void render() { 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    backgroundBatch.begin(); 
    backgroundBatch.draw(backgroundTexture, 0, 0, mWidth, mHeight); 
    backgroundBatch.end(); 
    ... 
} 

@Override 
public void resize (int width, int height) { 
    mWidth = width; 
    mHeight = height; 
    mScale = Math.max(width, height)/20f; 

    backgroundShader.begin(); 
    backgroundShader.setUniformf("resolution", width, height); 
    backgroundShader.end(); 
} 

回答

0

這可能發生,因爲viewport您正在使用,這通常是在構造函數中設置或create方法的代碼。

什麼是viewport

基本上,一個viewport是一個對象,它被創建來定義如何在不同的屏幕上繪製遊戲的策略。例如,您的相機設置爲480 x 800(像素)。如果您的遊戲在具有不同比例的屏幕上運行,會發生什麼情況,例如,屏幕爲1,136×640像素的iPhone 5?比賽應該拉長嗎?圖像是否應該裁剪?或者應該libgdx在兩側添加黑條以適合您使用的相機尺寸?這個決定是由你的相機使用的viewport做出的。

這是簡單的。強烈建議您在wiki上閱讀更多內容。

此外,關於這個問題的一個很好的教程可以找到here