2017-03-28 8 views
0

libGDXライブラリにリソースを格納するためのベストプラクティスは何ですか?私はAssetManagerを使用でき、また、私はアンドロイドフォルダからiOSにリソースをリンクすることができますが、マルチプラットフォームデバイス上でどのように動作するかわかりません。リソースは、画面サイズ/オペレーティングシステムに応じてスケールされている、または私は手動で各プラットフォームのリソースフォルダーで異なるサイズまたはresulutionを設定する必要があります。私はovelayingまたはストレッチの動作を避けたいです。マルチプラットフォームのlibGDXアプリケーションの資産動作

答えて

1

これについては多くの方法があり、「最良の」解決法はありません。しかし、あなたがすでにアンドロイドのために構築する場合は、アンドロイドアセットフォルダを使用してください。これはデフォルトであり、他のビルドにも使用されます(デフォルトのlibgdxプロジェクト構成のため)。

リソースは、あまりにもスケールすると縮尺が変わります。ビューポートを使用することができます(フィット/塗りつぶしビューポートは伸びませんが、デフォルトの縦横比を持たない黒色/背景バーを追加できます)。しかし、アスペクト比とスケールを使用して、画面の依存関係を実装することもできます。例えば

:1440x1920タブレット 対

1080x1920の携帯電話あなたがフィットビューポートを使用している場合は、タブレット上の未使用スペースを持つことになります。あなたがfillviewportを使用する場合、あなたは電話でものを失うかもしれません。しかし、携帯電話をデフォルトのアスペクト比にして、タブレットの幅オフセット(1440-1080/2)を計算すると、この値を使用して、俳優/スプライトを同じ場所に置くことを選択できますオフセット)または(画面サイズを使用して)画面の端からの相対距離です。私は個人的にこれを使用してUIをスクリーンとゲームそのものを電話と同じ場所に配置します。アスペクト比に応じて別のレイアウトを使用することもできます。

このように、グローバルスケールを計算し、アプリケーションのどこでも使用する必要があります。これは実装が面倒かもしれませんが、より多くの制御を提供します!

単純なゲームをしていて、タブレットやさまざまな画面サイズを気にしない場合は、フィットビューポートから始めることをおすすめします。

p.s.私が言ったように、 "マルチプラットフォームデバイス"が何を意味しているのかは分かりませんが、デフォルトのlibGDXセットアップはここで重くしています。

+0

純粋なアンドロイドの開発では、異なる画面サイズのデバイスで同じように見えるdp/spのspecyficサイズメジャーを持つcontainer/text/ImageViewsを使用できます。私はまた、異なる解像度でdrawable資産を持つ5つの異なるフォルダを持っています。しかし、iOSでは、資産の解像度が異なり、私はそれを処理する必要があるかどうか、または私はアンドロイド資産を使用できるかどうかを知りたい。 – Expiredmind

+0

LibGDXは "純粋なアンドロイドの開発"のようなものではありません。 DPI依存資産を使用する場合は、それを自分で管理する必要があります。これは非常に可能です。個人的には、解像度ベースの資産を使用しています(私は低および高解像度の資産を持っており、起動時に読み込む資産を選択します)。 すべてのアプリアセットはすべてのプラットフォームで使用できますが、必要なプラットフォーム依存のアセットはiOSとAndroidのiOS起動画面とアイコンのみです。 –

+0

Okeyので、良い方法は、カップルの解像度で資産を作って、どちらが読み込まれているかをプログラムで決定することです。 – Expiredmind