我发现在《吃豆人》中有很多关于幽灵AI的参考,但没有一个提到当幽灵被《吃豆人》吃掉后,眼睛是如何找到中央幽灵洞的。

在我的实现中,我实现了一个简单但糟糕的解决方案。我只是在每个角落都用硬编码标明了应该往哪个方向走。

有没有更好的/最好的解决办法?也许是适用于不同关卡设计的通用设计?


当前回答

这是我能找到的关于它是如何工作的最好的资料。

http://gameai.com/wiki/index.php?title=Pac-Man#Respawn 当幽灵被杀死时,它们脱离实体的眼睛会回到最初的位置。这可以通过将幽灵的目标贴图设置到该位置来实现。导航使用相同的规则。

这是有道理的。也许不是世界上最有效的方法但这是一种很好的方法不用担心另一种状态或者沿着这些线你只需要改变目标。

附注:我没有意识到那些吃豆人程序员有多棒,他们基本上是在非常小的空间和非常有限的内存中创建了一个完整的消息系统……太神奇了。

其他回答

在游戏开始前保存地图上的节点(交叉点) 当怪物死亡时,取点(坐标)并找到 节点列表中最近的节点 计算从该节点到洞的所有路径 按长度取最短路径 将该点与最近节点之间的空间长度相加 绘制并在路径上移动

享受吧!

简而言之,不是很好。如果你改变了《吃豆人》迷宫,眼睛就不一定会回来。有些四处游荡的黑客就有这个问题。所以它依赖于一个合作迷宫。

最初的《吃豆人》并没有使用寻径或花哨的AI。它只是让玩家觉得游戏比实际更有深度,但实际上它是随机的。正如Ian Millington和John Funge在《ai Intelligence for Games》中所述。

Not sure if it's true or not, but it makes a lot of sense to me. Honestly, I don't see these behaviors that people are talking about. Red/Blinky for ex is not following the player at all times, as they say. Nobody seems to be consistently following the player, on purpose. The chance that they will follow you looks random to me. And it's just very tempting to see behavior in randomness, especially when the chances of getting chased are very high, with 4 enemies and very limited turning options, in a small space. At least in its initial implementation, the game was extremely simple. Check out the book, it's in one of the first chapters.

对于我的《吃豆人》游戏,我创造了一个“最短多条回家路径”算法,它适用于我所提供的任何迷宫(在我的规则集内)。它也适用于隧道。

当关卡被加载时,每个十字路口的所有归途数据都是空的(默认),一旦幽灵开始探索迷宫,它们每次遇到“新的”十字路口或从不同的路径再次遇到已知的十字路口时,它们的归途路径信息就会不断更新。

实际上,我想说你的方法是一个非常棒的解决方案,与任何类型的寻径相比,运行时间成本几乎为零。

如果你需要将其推广到任意地图,你可以使用任何寻径算法——例如,宽度优先搜索很容易实现——并在游戏运行前使用该算法计算在每个角落编码的方向。

编辑(2010年8月11日):我刚刚看到了关于吃豆人系统的一个非常详细的页面:the Pac-Man Dossier,既然我已经得到了公认的答案,我觉得我应该更新它。这篇文章似乎没有明确地涉及回到怪物房子的行为,但它指出了《吃豆人》中的直接寻路是以下情况:

继续向下一个路口移动(尽管这本质上是一种特殊情况,即“当有选择时,选择不涉及反转方向的方向,如下一步所示); 在十字路口,看看相邻的出口方块,除了你刚刚出来的那个; 选一个离目标最近的。如果有多个方向同样接近目标,则按以下顺序选择第一个有效方向:上、左、下、右。