私はLibGDXを使って私の最初のゲームを構築するアンドロイドの開発者です。 A LOTを読んだ後、私は理解していないことがまだ1つあります。LibgdxとTexturePackerを使ってxxxdpiイメージを歪めます
最高の解像度2560x1440(ベクター画像ではない醜いスケーリングを防ぐため)のために、私は1セットの画像を持っているはずです。
私は私の画像をパックするTexturePackerを使用しても、最大の品質を得るために、線形線形を使用してい:
TexturePacker.Settings settings = new TexturePacker.Settings();
settings.filterMin = Texture.TextureFilter.Linear;
settings.filterMag = Texture.TextureFilter.Linear;
settings.maxWidth = 4096;
settings.maxHeight = 2048;
TexturePacker.process(settings, inputDir, outputDir, packFileName);
私は固定メートルに、いくつかのSOの中で推奨されているように、私のカメラを設定し、すべて避けてきましたPPMのもの。スクリーンのC'TORから:
mCamera = new OrthographicCamera();
mCamera.viewportWidth = 25.6f; ; // 2560/100
mCamera.viewportHeight = 14.4f ; // 1440/100
mCamera.position.set(mCamera.viewportWidth/2, mCamera.viewportHeight/2, 0f);
mCamera.update();
ご覧のとおり、1メートル= 100ピクセルで作業することを選択しました。
は今、それは私が私がここでやっている1/100サイズ、と私のスプライトを描画する必要があります意味:
TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("images/pack.atlas"));
mImage = atlas.createSprite("image"));
mImage.setSize(mImage.getWidth()/100 , mImage.getHeight()/100);
これは動作し、意図したとおりに画像が表示されます。しかし、彼らは地獄のように歪んでいる!完全に丸い画像は、エッジ上にピクセル化され、丸く見えません。
だから、私の質問は以下のとおりです。
- はこれがベストプラクティスですか私は異なる動作をする必要がありますか?
- 最高の画質の画像しか持っていないのですか?
- ひずみは、私のコードが実際にスプライトを縮小していることを意味し、何とかlibgdxが再びスケールアップして品質を損なったのでしょうか?
ありがとう!私はつもりは(1)にTenfour04の答え@適応し、(2)よ
EDIT
。 (3)、問題はそのゲームをピクセル化、Genymotion :(である。私は、いくつかの解像度で実際のデバイス上でテストしてきたし、それが完璧に見えるに関して
。
詳細な回答ありがとうございました。 (1)私はこれに慣れて、もちろんそれを実装するつもりです。 (2)TexturePackerでスマートで簡単に聞こえるこの方法について言及しているチュートリアルが表示されないのはどうですか? (3)MipMapLinearLinearなどのオプションも試しましたが、スプライトはまだ歪んでいます。だから、私は別の問題があるかもしれないと言っているから? – Shirane85
なぜ多くのチュートリアルに含まれていないのか分かりません。 TexturePackerにはサポートがあります。たぶんあなたの歪んだスプライトの写真を投稿してください。あなたが説明したことが他に何を引き起こすかはわかりません。 – Tenfour04