1

私は Android プログラミングの初心者なので、ご容赦ください :) 私の単純なゲームでは、最初に正方形で構成される 20 x 10 のグリッドを描画しています。ゲーム内では、いくつかの正方形の中心にスプライトを描画する必要があります。(各正方形の中央にチップがあるチェッカー グリッドに類似しています)。このゲームは、さまざまな画面サイズと密度で動作するようにしたいと考えています。私のアプローチは、ゲームの開始時にキャンバスの幅と高さを取得し、正方形の一辺を計算してから、グリッドを描画してビットマップとして保存し、そのビットマップをゲームで使用することでした。そうすれば、グリッドは画面全体で完全にスケーリングされます。

1) より良いアプローチはありますか? 代わりに、グリッドのイメージをビットマップとして使用できますか? 私の懸念は、画像がさまざまな画面用にスケーリングされると、正方形が長方形に歪む可能性があることです。さらに、スケーリングされた各正方形の中心がどこにあるかを計算するのは困難です (スプライトを配置するため)。

2) タイトル、スコア、レベルなども画面のどこかに表示する必要があります。ビットマップにスペースを残してビットマップにスコアを書き込むか、グリッド用の SurfaceView とスコア、レベルなどを書き込む別のビューを使用してレイアウトを作成する方がよいでしょうか?

ありがとう!

4

1 に答える 1

1

9-Patch .png 画像を使用して、最初に 1 つの正方形を表す画像を作成するか、20x10 グリッドを表す画像を作成します。これを行うと、mdpi (中ドット/インチ) 画面で正しく表示されます。

次に、サポートする他の画面密度用に事前にスケーリングされた画像を作成する必要があります。ldpi はオリジナルの 0.75、hdpi はオリジナルの 1.5 倍、xhdpi はオリジナルの 2 倍になります。

次に、画像をプロジェクトの関連するドローアブル リソース ディレクトリ (例: /res/drawable-mdpi や /res/drawable-hdpi など) に配置します。

画像には、square.png や grid.png など、密度ごとにまったく同じ名前を付けます。これらの描画可能なディレクトリに同じ名前の画像が含まれている限り、Android は適切な密度の画像を見つけて使用します。

長いドキュメントですが、本当に読む必要があります...

複数画面のサポート

...特に、Alternative Drawables の部分。

于 2012-05-17T18:31:07.717 に答える