2016-08-23 8 views
1

私はlibgdxでゲームを作っています。私はpow2以外のテクスチャを使用して逃げることができますか?彼らはメニューのためだけになります。私はそれがパフォーマンスに影響を与えることを心配していないし、いくつかのアンドロイド/ iosデバイスと互換性がない場合にはさらに心配ですか?ありがとう!Libgdx |アンドロイド単純なゲームのためにpow2以外のテクスチャを使用することはできますか?

+2

はい、ただし、ミップマッピングやテクスチャの折り返しは使用できません。 – Tenfour04

+0

私はTenfour04のコメントに、デバイス間の画面解像度のばらつきが非常に大きいので、ミップマッピングを使用できないことが大きな問題であるという点を追加するだけです。 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; 
} 
関連する問題