18

持っているゲームのアイデアのプロトタイプを作りたいです。このゲームのアイデアは、プレイヤーが地面を掘ってトンネルを作り、宝物を見つけるというものです。

プレイヤーがトンネルをさまよったりジャンプしたりするための衝突検出を備えた、「ワームスタイル」の地形を作成しようとしています。このタイプの動的地形の例は、これらの写真で見ることができます。 例 1 例 2

私の質問は、このタイプの破壊可能な地形を実装する最良の方法は? XNAゲームスタジオを使用しています。

4

3 に答える 3

7

Riemer は、XNA で開発したゲームに同様のアプローチをとっています。大砲の砲弾によって地形が「破壊」され、それまでその地形にあった小道具がそれに応じて移動します。

ニーズに合わせてリファクタリングおよび改善する必要がありますが、それは始まりです。

Riemer には、他のことについてのチュートリアルも豊富に用意されています。

http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Adding_craters.php

于 2010-01-18T01:36:09.043 に答える
4

2 つの可能性があり、そのうち 1 つが機能しますが、実装がどれほど簡単かは XNA に依存します。

  • 他の人が示唆したように、ビットマップマスキング。すべての「地面」ピクセルとすべての「空気」ピクセルのビットマップを保持します。重力がある場合。キャラクターは地面を通り抜けることはできませんが、空中を通り抜けることはできます。
  • ベクトル ジオメトリ。長方形の「地面」から始めて、空気を作成する「削除された」地面のリストを保持します。このジオメトリの編集は非常に簡単です。リストに円などを追加し、グラフィックを更新するだけです。XNA にベクトルと形状の機能があるかどうかはわかりません。ただし、これら 2 つの要素を使用してジオメトリを作成し、後でテクスチャなどを適用するのは簡単なはずです。また、これは、レンダリングされたランドスケープのキャッシュ バージョンを保持し、新しく追加された「空気」のバウンディング ボックスのキャッシュのみを更新することで、簡単に最適化できます。ただし、このソリューションにはもう少し数学が必要です。
于 2010-01-18T01:27:13.950 に答える
1

以下に、XNA 4 のピクセル シェーダーでこれを行う方法を相互に構築する 2 つの例を示します。どちらの例にもソースコードが含まれています。

http://www.syntaxwarriors.com/2012/xna-alpha-mapping-with-pixel-shaders/

http://www.syntaxwarriors.com/2012/xna-alpha-mapping-with-pixel-shader-and-rendertarget2d/

ピクセル シェーダーでこれを行うと、重い作業はすべて GPU で行われるため、非常に高速です。

于 2012-02-20T08:40:50.763 に答える