2016-07-30 11 views
2

私はLibGDXで書いた私のモバイルゲームのパフォーマンス上の問題に直面しています。 テスト用に1つの解決策(1920x1080)しかないとします。Libgdx - 巨大なスプライトシートを読み込んで黒くならないようにするには?

私は以下のような画像と組み合わせspritesheet持っている:私は、これらの粒子が私のロゴの周りを飛びたいので、私は彼らの大きさは、少なくとも256px/512pxする必要が enter image description here

- それは、与えられた解像度によさそうだが。

一つのフレームは、その大きさを持っており、私はそれが良い見するために少なくとも32個のフレームが必要な場合は、それは全体spritesheetの寸法を持っていることを計算するのは簡単です:

width: 256 * 8 (columns) = 2048 
height: 512 * 4 (rows) = 2048 

これは、最も楽観的な考えである、原因スプライトシートはさらに大きくなるはずです。 スプライトシートの重量は〜50kbなので、本当に問題ありませんが、寸法が問題になっています。

昨日私はLibGDXのデスクトップ版ですべてをテストしました。すべてうまくレンダリングされます。私はAndroidにメニューを終了した後にゲームを移植し、このスプライトシートを描画する領域はです。黒色のです。

私はgamedevを読んだり、最大サイズのグラフィックを使うべきであることを覚えていません。1024/1024 LibGdxは多くのバージョンでAndroidでより高いテクスチャを読み込む際にいくつか問題があります。

達成しようとしていることはありますか? この作業を行い、テクスチャを読み込む方法を知る必要があります。

Iすでにピックスマップを使用してファイルのサイズを変更してみましたが、それは寸法としてint型をとり、それはなどの品質を下げる...

私は誰かが「なぜあなたは1つだけを作成しないだろう、と言うでしょう知っています次のようなオレンジ色のグラフィックを持つ「ドット」オブジェクトを作成し、これらのドットをランダムに生成し、時にはそのアルファを変更しますか?私は「霧」のような他のアニメーションを必要とするので、それはオプションではありません。これは簡単にドットのようにプログラムすることはできません。

テクスチャ、リージョン、または何かのサイズを変更する方法があるかもしれません(アスペクト比を維持するためにフロートを使用します)。

誰かが任意のアイデアを持っている場合は、私は私のアプリでは、巨大なspritesheetsを使用する必要がありますどのように、私は非常に感謝される:)

+0

個々のテクスチャが256 x 512の場合、問題を回避するために4つの1024 x 1024テクスチャをロードできませんでしたか? –

+0

私が言ったように、これは最も楽観的なケースです。1920x1080デバイスの256x512のデバイスは、実際には非常に小さく見えます。私は、グラフィックをダウンスケールする必要があります、それらを高級ではありません!私はより大きなスプライトシートを持っていると、それを意味のない20の小さなスプライトシートでカットする必要があります:( –

+1

このアニメーションでは、テクスチャとしてムービーを読み込もうとするのではなく、ゲームの中で直接使用しますか?または、ゲームを読み込む前に実際のMPEGムービーを再生するAndroidビューを作成することもできます。 – Tenfour04

答えて

2

あなたのスプライトシートは長さ* 2048 2048を超えてはなりません。

2048 * 2048以上のスプライトシートをロードする場合は、フレームごとに読み込む必要があります。

スプライトシートに15フレームが含まれている場合は、15個の別々のpngファイルが必要です。

+1

すべてのデバイスで安全な状態にするには、1024x1024にする必要があります。 :) –

関連する問題