トップダウン/サイドスクロールについての質問!


7

スクロールするのはその背景だけであり、プレーヤーはほぼ中央にとどまります。大きなサイドスクロールマップを実装している場合、どの手法がより適切であると思いますか(私が見つけた他のいくつかの質問のようなタイルを使用していません)。

16000ピクセルの非常に大きなマップを使用し、それをスクロールします。たぶん4 4000ピクセルのマップで画像リストを作成しますか?

また、マップの特定の場所にボックスが必要だとします。現在、スクロールしているピクセルをカウントしているだけです。ピクセル2000に到達したら、ボックスを挿入し、背景と一緒にスクロールします。それは正しいように見えますか?またはこれをすべて行うためのより良い方法はありますか?

回答:


4

SpriteBatchを使用している場合:

  • SpriteBatch.Draw「ワールドスペース」にすべてを描画()
  • 変換行列をSpriteBatch.Beginに渡して、ワールドスペースを正しい位置に変換します(これはカメラのように考えてください)。
  • XNAの最大テクスチャサイズは、Reachプロファイルでは2048x2048、HiDefでは4096x4096です(詳細)。背景テクスチャが大きい場合は、分割して部分的に描く必要があります。
  • パフォーマンスの問題が発生した場合は、カリングを 追加することを検討してください。

その「ワールドスペース」ですべての動きの計算などを行う必要があります。したがって、そのボックスはのような位置になりnew Vector2(2000, 0)ます。

プレーヤーにはもあり、Vector2 position;おそらくのようなものもありVector2 velocityます。次にDraw、その位置でプレーヤースプライトを実行します。また、その位置を使用してカメラマトリックスを作成します。

以下のための本当に巨大な世界、または精度を必要とする物理エンジンについて、あなたは精度(維持するために、あなたの世界のスペースをリベースについては混乱する必要があるかもしれません詳細を)。これはおそらくあなたの状況には当てはまらないと思います。


0

画像リストを使用します。(メモリに優しい-ガベージコレクターに注意を払う)

ピクセルを数えることは良いことも悪いこともある。ゲームの複雑さに依存します。プロ:-それはかなりWYSIWYGです。-何が起こっているのかを理解するのは簡単です

短所:-最小のステップサイズは1ピクセルです。コントロールをより正確にしたい場合があります。

私の提案:ゲームがかなりシンプルな場合はピクセルを使用します。それ以外の場合は、連続した空間ですべてを計算します。


連続する空間ですべてを計算するのは良い考えのようです...それが何であるかを知っていれば。
bitbitbot 2011

1
連続空間は、ベクトルジオメトリを実行する場所です;-)線形代数にあまり慣れていない場合は、ピクセルを使い続けください(またはkhanacademy.orgにアクセスして学習してください)
Fabian
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.