2016-08-23 54 views
1

我正在用libgdx製作遊戲。我可以使用非pow2紋理逃脫嗎?他們只會用於菜單。如果它可能與某些android/ios設備不兼容,我是不是擔心它會影響性能,更擔心它?謝謝!Libgdx | Android |我能否使用非pow2紋理進行簡單的遊戲?

+2

是的,但不能使用mip貼圖或紋理包裝。 – Tenfour04

+0

我只是添加到Tenfour04的評論,不能使用mip映射是一件大事,因爲跨設備的屏幕分辨率的變化是如此巨大。缺乏2D菜單的紋理包裝並不是什麼大的損失。 – Columbo

回答

1

我知道兩種方法是:

1)收拾好你的圖像紋理打包機:

https://github.com/libgdx/libgdx/wiki/Texture-packer https://code.google.com/archive/p/libgdx-texturepacker-gui/

2)重寫你非POW2紋理POW2質地像這樣:

public Texture getTexture() { 

    // Gdx.app.log("WWW", "url: " + urlString); 
    Pixmap pixmap = new Pixmap(responseBytes, 0, responseBytes.length); 
    final int originalWidth = pixmap.getWidth(); 
    final int originalHeight = pixmap.getHeight(); 
    int width = MathUtils.nextPowerOfTwo(pixmap.getWidth()); 
    int height = MathUtils.nextPowerOfTwo(pixmap.getHeight()); 

    int deltaX = (int) ((width - originalWidth)/2f); 
    int deltaY = (int) ((height - originalHeight)/2f); 

    final Pixmap potPixmap = new Pixmap(width, height, pixmap.getFormat()); 
    potPixmap.drawPixmap(pixmap, deltaX, deltaY, 0, 0, pixmap.getWidth(), pixmap.getHeight()); 
    pixmap.dispose(); 
    Texture texture = new Texture(potPixmap); 
    potPixmap.dispose(); 
    return texture; 
}