2

私はAndroidプラットフォーム用の2Dプラットフォーマーゲームを開発しているので、画面のDPIについてはあまり気にしませんが、ピクセル単位の実際の解像度についてはもっと気にします。私がネット上で収集したものから、いくつかの異なる解像度(およびアスペクト比)が存在します。私の検索によると、現在普及している2つの解像度は480x320(1.5)と800x480(1.666)ですよね?ほとんどの顧客にリーチするために、これら2つの解決策をターゲットにしたいと思います。これで、より大きなディスプレイ用に40ピクセルの黒い境界線を表示することで、さまざまなアスペクト比に対処できます。基本的に、720x480ピクセルと1.5の比率に縮小します。

私のゲームの問題は、プレイヤーが各画面で同じ量の世界を見ることがゲームプレイに不可欠であるということです。そうでなければ、一部のプレイヤーは不当なアドバンテージを得るでしょう。さらに、可視性に応じていくつかのイベントをトリガーします。たとえば、敵はプレイヤーがそれを見始めたときにのみ射撃を開始することができます。そうでなければ、敵の弾丸はどこからともなく来ているように見えます。

そのため、一方の解像度用にグラフィックを作成し、もう一方の解像度用にスケーリングする必要があると考えました。または、解像度ごとに個別のグラフィックを作成します。そうですか?残念ながら、どちらの方法もピクセルグラフィックスには最適ではありません。

別の注意:ゲームをこれらの解像度のみに制限するにはどうすればよいですか(特にAndroidマーケットの場合)?マニフェストの「supports-screens」タグについて知っていますが、ピクセル単位のサイズではなく、有効な画面サイズに応じて機能しますか、それとも間違っていますか?解像度の独立性に関しては、他のAndroidゲーム開発者の個人的な経験にも興味があります。

ありがとう!

4

2 に答える 2

3

私の質問は、PCで何をするだろうと思いますか?ゲーム開発の場合、AndroidはコンソールというよりもPCターゲットのように見える必要があります。事前に完全に予測できない画面の多様性があることを本質的に受け入れる必要があります。

したがって、2つの主要なアプローチがあると思います。

(1)PCで固定のビデオ解像度を設定し、ユーザーのモニターに処理させるかのように、一定の「表示サイズ」を使用します。もちろん、これらのデバイスにはモニターがなく、固定ディスプレイが1つしかないため、コア解像度を変更しても意味がありません。代わりに、ゲームを表示するSurfaceViewを固定解像度に設定し、プラットフォームのコンポジターに、画面に合成するときに(ハードウェアで)スケーリングを任せることができます。

(2)実行している画面の実際の解像度に合わせて、よりインテリジェントに調整します。グラフィックを自分でスケールアップまたはスケールダウンして、必要な再生領域を作成します。たぶん、いくつかの異なるサイズのテクスチャがあり、画面解像度に適したものを選択します。

おそらく、これらを組み合わせて実行することもできます。この場合、ゲームを適切に実行できる合計解像度に応じて、サーフェスビュー用にいくつかの固定サイズを選択できます。いずれの場合も、必要に応じてレターボックスを作成して、さまざまな画面でアスペクト比を一定に保つことができます。

于 2011-01-17T23:02:21.100 に答える
1

アスペクト比の違いには、次の3つのアプローチがあります。

  1. 一部の比率で不透明な境界線を表示します(「レターボックス」)。
  2. いくつかの比率でゲームの世界をもっと見せてください。
  3. 一部の比率ではまったく機能しません。

アプローチ(1)では、一部のデバイスで画面スペースを浪費します。テレビにとってはそれほど大したことではありませんが、画面スペースが限られているハンドヘルドデバイスでは悲惨です。アプローチ(2)を使用すると、一部のデバイスのプレーヤーは、長所(より多くの世界を見ることができます)と短所(スプライトが小さいため、タッチの精度が難しくなります)が得られます。アプローチ(3)は最悪です。

明らかにそれはあなたのゲームの詳細に依存しますが、プレイヤーとして私はアプローチ(2)を非常に好みます。他のデバイスのプレーヤーが仮想的なアドバンテージを少し得るかどうかを気にする構成員は、画面が不要な黒いバーで部分的に隠されているかどうかを気にする構成員と比較してかなり小さいです。

(同様のアプローチと注意が解像度の違いに適用されます。)

于 2011-01-17T21:46:48.060 に答える