我目前正在用 Java 制作吃豆人游戏。我有一个关于幽灵的问题。
我知道幽灵并非都采用相同的攻击方式。我首先想专注于让幽灵追逐吃豆人的基本功能,暂不考虑它们之间的差异。
有什么最好的方法能让幽灵追逐吃豆人,但有时又会随机改变路径呢? 我目前使用一个 21×21 的二维数组来表示墙壁的位置等等,所以我正在考虑让幽灵尝试前往吃豆人当前的网格位置。(例如,前往 10,14)当然,要像吃豆人一样避免穿墙。我想知道如何实现这个目标,并且让幽灵有时停下来并转向另一个方向,这样就不会总是持续追逐,让吃豆人有机会逃脱。
回答:
如果你只是想让幽灵的行为不完全相同,那么每次它们遇到十字路口时,将它们的决策设置为一些合理的追逐默认行为(例如,沿着与吃豆人距离最短的路径继续前进 —— 使用 Dijkstra 算法 对所有后继节点进行计算,以选择最佳的那个)和一个随机选择的混合。