问题标签 [pacman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
3700 浏览

java - Java 中的 Pacman 问题

对于我的大学作业,我必须制作一个可联网的 pacman 版本。我想我最好先制作一个 pacman 的本地副本来解决这个问题,然后将此功能扩展为网络游戏。

我不得不说我对 java GUI 开发和在 java 中利用这些特性还比较陌生。

我已经开始关注上面关于 java 中的游戏开发的链接和一个 pacman 游戏的例子。

我决定将迷宫表示为一个 int 数组,其中不同的值意味着不同的事物。然而,当主游戏循环中的绘制方法运行时,我正在用这种方法重新绘制整个迷宫。

然而,这为我提供了不到 1fps 的速度。尽管我注意到上面链接的示例在每次调用paint方法时都使用类似的重绘方式,并且我相信在不可见的图像上会这样做(有点像双缓冲[我使用了像第一个链接一样的 BufferStrategy解释]) 重新绘制迷宫的更好方法是什么?

任何与此有关的指针/建议都会很有用。

感谢您的时间。

http://pastebin.com/m25052d5a - 用于主要游戏类。

编辑:我刚刚注意到在尝试查看哪些代码需要这么长时间才能执行之后发生了一些非常奇怪的事情。

在我添加的 paintClear(Graphics g) 方法中

这使整个事情顺利进行 - 但是当我删除这些行时,整个事情变慢了?是什么原因造成的?

更新代码

0 投票
2 回答
3329 浏览

java - 如何使用双缓冲在 Java 中显示 Pacman 的嘴巴打开/关闭动画?

我正在尝试在我正在制作的一次性 pacman 游戏中展示 pacman 角色著名的张嘴/闭合动画,以自学游戏编程。

我正在做的是绘制张开的嘴巴图像,然后在完全相同的(x/y)位置重新绘制闭合的嘴巴图像。但这不起作用,我只是一直看到闭口动画。

如果我把它放在一个循环中,系统就会冻结,你会看到张开嘴的图像在闪烁,但你看不到被替换的图像。

我已经测试并确保两个图像都按预期正确加载。

这是我的startAnim()函数,当您双击小程序时调用它:

0 投票
1 回答
3358 浏览

algorithm - A* 启发式:在多个点中通过一次的最短路径

我正在尝试为清晰地图的吃豆人游戏提出一个好的和快速的启发式方法。

我的启发式方法是尝试计算 pacman 到达地图上每个点的食物所需的最小距离。我目前的算法基本上是 Prim 的 MST,它可以让我获得 O(n logn) 的运行时间,但不考虑 pacman 需要跟随边缘吃东西以及返回到前一个顶点的情况......

有更好的吗?

换一种说法:不用提笔连接几个点的最低成本是多少?

谢谢

0 投票
4 回答
1742 浏览

java - 在我的吃豆人女士的实现中可能过度使用 java 接口

在过去的 6 年里,我一直是一名 Java 程序员,从今年年初开始,我对游戏编程产生了兴趣。所以,我认为从一个流行的游戏开始是个好主意,我用 Java 实现了游戏 Ms. Pac-Man。我可以说我的实现看起来与原始游戏大约 90% 相似,并且我尝试使用尽可能多的设计模式和最佳实践,因为这只是一个学习编写基本 2D 游戏代码的个人项目。

现在我完成了编码,我意识到我有 19 个接口和只有 17 个类!所以我开始怀疑我是否可能过度使用接口。

这是我使用的一些类/接口的示例:

- FullGame(实现 FullGameInterface 和 FullGameObservable)

- View1(实现 FullGameObserver)

Interface - FullGameInterface(基本功能方法:恢复、暂停、播放等)

接口- FullGameObservable(允许注册视图以获取更新通知)

接口- FullGameObserver(由游戏的 2 个不同视图实现以接收通知)

我是否过度使用接口?

你有什么意见?

0 投票
6 回答
34945 浏览

path-finding - Pacman 的寻路算法

我想实现游戏吃豆人。对于 AI,我正在考虑使用 A* 算法,在许多论坛上都看到过。但是,我为一些简单的寻路(从 a 点到 b 点,中间有某些障碍物)实施了广度优先搜索,并发现它总是给出最佳路径。我想这可能是因为在像吃豆人这样使用简单寻路的游戏中,图表中没有成本的概念。那么,如果我在 Pacman 中使用 BFS 而不是 A* 进行寻路可以吗?

0 投票
4 回答
4939 浏览

javascript - Google 主页上的 PacMan,它是如何实现的?

我想知道,Google.com 上的 PacMan 游戏是如何实现的?

Javascript?

0 投票
7 回答
15823 浏览

c++ - 如果我想制作一个吃豆人游戏?

我立即将其作为社区 wiki 事物。我不想在编程方面寻求帮助,甚至对编程有任何具体的问题,而是想要制作这样一款游戏所需的过程和资源。

简单地说:我和我的大学朋友决定给自己一个非常大的挑战来提高我们的编程技能。在六个月的时间里,我们想向自己展示一款吃豆人游戏。Pac-Man 将像 Ghosts 一样由 AI 控制,并且在一系列尝试获胜后,无论哪个 Pac-Man 寿命最长。

这不像我们迄今为止所做的任何事情。对我来说,这里的目标不是创造一个完美的游戏,而是尝试完成它,在这个过程中学习一大堆东西。即使我没有按时完成,这是一个很好的可能性,我也想至少尝试一下。

所以我的问题是:我应该如何开始准备自己?我已经开始学习向量数学、矩阵以及所有有趣的东西了。我想要的平台是 DirectX 9.0c;这是可取的吗?请记住,这不仅仅是这个项目的偏好,但我希望在图形开发方面有某种未来,所以我想选择一个未来安全的平台。

至于一般的游戏开发,我应该考虑什么?我以前从未做过真正的游戏,因此非常感谢任何关于开发中型项目(如果这将是一个中型项目)的建议。

我主要担心的是陷阱和消极因素。

对不起,如果问题如此模糊。如果它不属于这里,那么我将删除它。否则,非常感谢有关制作更大项目的任何和所有建议。

0 投票
2 回答
2953 浏览

actionscript - 吃豆人游戏:处理编程语言和动作脚本

我将简单地根据我想要制作的吃豆人游戏来命名它。

有人建议我可能从一种比 DirectX 使用更少开销的编程语言或平台开始。我可以同意这一点,尤其是因为这样我就可以专注于游戏的设计而不是实施——我认为在这个阶段更重要的是。

我想知道 Processing 作为一种能够创建简单游戏的语言有什么优点。图像的创建似乎非常简单,这让我有很多游戏空间来处理算法。但是,我想知道该语言是否适合游戏和资源密集型代码?

乍一看,这看起来就像是 Actionscript 的简化版本,这是一种试图轻松生成图像的语言。ActionScript 是我已经编程的东西,但不喜欢。出于某种原因,这种语言对我来说并没有那么吸引人。处理也不是很多,但我觉得它的图像处理能力超过了我对语法的负面看法。

所以我的问题是,人们在处理方面的经验是什么,我真的有理由将它与 ActionScript 进行比较吗?它是否适合创建游戏?我认为我创建图像的所有舒适和轻松,我觉得整个程序的速度会降低,特别是当我引入算法时。

此外,如果它适合创建一个简单的吃豆人游戏,我是否应该尝试使用 ActionScript 来代替?

0 投票
5 回答
1767 浏览

artificial-intelligence - 2 个吃豆人的寻路算法

我正在尝试实现 Pacman。它工作得很好,但到目前为止,幽灵没有使用任何寻路,而是随机决定每个路径交叉点要走哪条路径。所以你可以想象吃豆人赢得比赛并不难;)

所以我在 Pacman 中阅读了一些关于寻路算法的信息,在这里我找到了一个非常好的答案:Pathfinding Algorithm For Pacman

答案参考http://home.comcast.net/~jpittman2/pacman/pacmandossier.html#Chapter%204

这一切都很好,但是在我的 Pacman 实现中,有两个 Pacman 由两个不同的玩家玩。所以我想知道如何调整寻路算法,让鬼魂不总是追逐一个玩家。

关于如何修改算法以使幽灵对双方玩家或多或少平等公平的任何想法?

0 投票
22 回答
23224 浏览

artificial-intelligence - 吃豆人:眼睛是如何回到怪物洞的?

我在 Pacman 中找到了很多关于鬼魂 AI 的参考资料,但没有一个提到在 Pacman 吃掉一个鬼魂后,眼睛是如何回到中央鬼洞的。

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

有没有更好/或最好的解决方案?也许是一个通用的,适用于不同的关卡设计?