0

我是一名 C# 老手,以前从未玩过游戏。为了拓宽我的视野,我开始自学基本的 XNA 东西,试图制作一个简单的 2D 迷宫类型游戏,其中涉及一些典型的敌人射击。我的问题涉及多个敌人的寻路。

考虑一个典型的例子:吃豆子。

当你在吃豆人游戏中开始一轮时,幽灵会从盒子里出来,走上不同的看似随机的路径,但有一个例外——它们的权重是寻找玩家的当前位置。我以为我可以在玩家每次移动时重新计算每个敌人的路径以达到类似的效果,但我不希望敌人过多地重叠路径,所以我需要随机扭曲每个计算出的路径以赋予一定程度的独特性敌人。对此有标准方法吗?

我想我可以把它看作每个敌人本身就是一个障碍,因此没有敌人的路径可能涉及与另一个敌人相撞的路线。在没有新路径可以让玩家自由奔跑的情况下,我会让敌人继续其现有路径,直到找到可行路径或碰撞改变当前路径。这可能就足够了,但我是否过于简化它?

4

3 回答 3

1

也许您发现潜在领域方法很有用......

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

每个敌人都有一个正势场,玩家有一个负势场,如果你填满地图,你可以得到一个敌人不会因为相同的符号电荷重叠太多......当然算法很重要...... .但也许可以帮助你。

在此处输入图像描述

于 2012-05-07T17:40:02.910 回答
0

有趣的想法,但它可能 - 对于简单的 Packman 示例 - 导致一些敌人无法找到路径。例如,如果 packman 在右下角,他只能向北或向西走。如果每条路径上都有一个敌人,那么其他敌人就找不到通往他的路径,并且会冻结或漫无目的地游荡。

也许给敌人一个比游戏中真正的障碍物更低的“重量”可以让他们仍然找到一条路径,并提供一个非常令人满意的时刻,当packman吃掉一个能量丸并且有几个鬼连续吞噬时向上。

于 2012-05-07T17:01:54.767 回答
0

我会用概率接近它..

也许像如果 A 路走 20 步,B 路走 30 步,那么怪物将在 60% 的时间内走 A 路,40% 走 B 路。然后添加某种规则,确保怪物总是会选择一条特定的路线,如果这条路线的可能性比另一条高 20% 以上。

这将创造一个场景,如果怪物足够近,它们总是走最近的路,在开阔区域采取不同的类似方式,并采取不同的方式,在远距离上花费几乎一样长的时间......

那么您需要添加一些方法来过滤掉最奇怪的行为,以消除无故改变方向的想法,并将实际数字配置到公式中:)(顺便说一句,这不是经过测试,只是推测)..

于 2012-05-08T07:44:44.203 回答