我发现很多人都提到了吃豆子鬼的人工智能,但他们都没有提到在吃掉鬼人吃鬼之后眼睛如何回到中央鬼洞.
在我的实现中,我实现了一个简单但可怕的解决方案.我只是在每个角落都硬编码应该采取哪个方向.
有没有更好/或最好的解决方案?也许是一个适用于不同级别设计的通用产品?
实际上,我说你的方法是一个非常棒的解决方案,与任何类型的寻路相比,几乎没有运行时间成本.
如果你需要将它推广到任意地图,你可以使用任何路径寻找算法 - 例如,广度优先搜索很容易实现 - 并且在游戏运行之前使用它来计算在每个角上编码的方向.
编辑(2010年8月11日):我刚刚参考了Pacman系统的一个非常详细的页面:吃豆人档案,因为我已经接受了答案,我觉得我应该更新它.这篇文章似乎并未涵盖明确返回怪物屋的行为,但它声明Pac-Man中的直接寻路是以下情况:
继续前进到下一个十字路口(虽然这基本上是一个特殊情况''在给出选择时,选择不涉及反转方向的方向,如下一步所示);
在十字路口,看看相邻的出口广场,除了你刚来的那个;
挑选最接近目标的一个.如果多个目标靠近目标,请按此顺序选择第一个有效方向:向上,向左,向下,向右.
我已经用通用级别解决了这个问题:在关卡开始之前,我从怪物洞做了一些"洪水填充"; 迷宫中不是墙的每块瓷砖都会有一个数字表示距离洞有多远.因此,当眼睛位于距离为68的瓷砖上时,它们看起来哪个相邻瓷砖的距离为67; 这是当时的方式.
对于更传统的寻路算法的替代方案,您可以查看(适当命名的!)Pac-Man Scent Antiobject模式.
你可以在启动时在迷宫周围弥漫出怪物孔的气味,让眼睛跟着它回家.
一旦设置了气味,运行时成本就非常低.
编辑:遗憾的是维基百科文章已被删除,因此WayBack Machine拯救 ...
你应该看看一个寻路算法,比如Dijsktra的算法或A*算法.这就是您的问题所在:图形/路径问题.
任何可行的简单解决方案都是可维护,可靠且性能良好的解决方案.听起来像你已经找到了一个很好的解决方案......
路径寻找解决方案可能比您当前的解决方案更复杂,因此更有可能需要调试.它可能也会变慢.
IMO,如果没有损坏,请不要修理它.
编辑
IMO,如果迷宫是固定的,那么你当前的解决方案是优秀/优雅的代码.不要错误地把"好"或"优雅"等同于"聪明".简单的代码也可以是"好"和"优雅".
如果你有可配置的迷宫级别,那么你可能只需在最初配置迷宫时进行寻路.最简单的方法是让迷宫设计师手工完成.如果你有一个巨大的迷宫,我只会打扰自动化......或者用户可以设计它们.
(旁白:如果手动配置路线,迷宫设计师可以通过使用次优路线使等级更有趣......)
在最初的Pacman中,Ghost通过他的"气味"找到黄色药丸,他会在地图上留下痕迹,幽灵会随意乱走直到找到气味,然后他们会简单地沿着气味路径直接引导他们玩家;选手.每次Pacman移动时,"气味值"都会减少1.
现在,扭转整个过程的一个简单方法就是拥有一个"鬼气金字塔",它的最高点位于地图的中心,然后幽灵就会朝着这种气味的方向移动.
假设您已经拥有追逐pacman所需的逻辑,为什么不重用它?只需改变目标.似乎比尝试使用完全相同的逻辑创建一个全新的例程要少得多.