0

私はゲームをしたことがない C# のベテランです。視野を広げるために、典型的な敵の射撃を伴う単純な 2D 迷路タイプのゲームを作成するために、XNA の基本的なことを独学で学び始めました。私の質問は、複数の敵の経路探索に関するものです。

典型的な例であるパックマンを考えてみましょう。

パックマンでラウンドを開始すると、幽霊が箱から出てきて、1 つの例外を除いて一見ランダムなさまざまな経路をたどります。幽霊は、プレイヤーの現在位置を見つけることに重きを置いています。プレイヤーが移動するたびに各敵のパスを再計算して同様の効果を達成できると考えましたが、敵がパスをあまりオーバーラップさせたくないので、計算された各パスをランダムに歪ませて、ある程度の独自性を与える必要があります。敵。これに対する標準的なアプローチはありますか?

それぞれの敵自体が障害物であり、敵の進路が別の敵と衝突する経路を含むことはあり得ない、と見なすことができると思います。プレイヤーにフリーランを提示する新しいパスがない場合、実行可能なパスが見つかるか、衝突によって現在のパスが変更されるまで、敵に既存のパスを続行させます。これで十分かもしれませんが、単純化しすぎていませんか?

4

3 に答える 3

1

多分あなたは潜在的な分野のアプローチが役に立つと思うでしょう...

http://aigamedev.com/open/tutorials/potential-fields/

各敵には正のポテンシャルフィールドがあり、プレーヤーには負のポテンシャルフィールドがあります。マップを埋めると、同じ署名された料金のために敵があまり重ならないようにすることができます...もちろんアルゴリズムには問題があります。 。しかし多分あなたを助けることができます。

ここに画像の説明を入力してください

于 2012-05-07T17:40:02.910 に答える
0

興味深いアイデアですが、単純な Packman の例では、一部の敵がパスを見つけられなくなる可能性があります。たとえば、パックマンが右下隅にいて、北または西にしか移動できない場合です。これらの経路のそれぞれに敵がいる場合、他の敵はその経路を見つけることができず、フリーズしたり、目的もなくさまよったりします。

おそらく、ゲーム内の実際の障害物よりも低い「重量」を敵に与えることで、敵はまだ道を見つけることができ、パックマンがパワーペレットを食べ、いくつかのゴーストが連続して食べているときに、とても満足のいく瞬間を提供できるようになるでしょう。上。

于 2012-05-07T17:01:54.767 に答える
0

確率で近づきます..

例えば、道 A が 20 歩、道 b が 30 歩の場合、怪物は道 A を 60% の確率で進み、道 B を 40% で行く。次に、ルートが他のルートよりも 20% 以上可能性が高い場合、モンスターが常に特定のルートをたどるようにする何らかのルールを追加します..

これは、モンスターが十分に近い場合は常に最も近い方法を取り、オープンエリアでは異なる同様の方法を取り、長距離ではほぼ同じ時間かかる別の方法をとるというシナリオを作成します...

次に、最も奇妙な動作を除外して、理由なしに方向を変えるなどの考えを取り除き、実際の数値を式に設定する方法を追加する必要があります:)(ところで、これは推測だけでテストされていません)..

于 2012-05-08T07:44:44.203 に答える