2D Java寻路游戏?

2D Java寻路游戏?,java,path,path-finding,Java,Path,Path Finding,我目前正在写一个非常基本的Java游戏,它基于 我对爪哇很陌生,第一年就在这所大学学习。我断断续续地做了将近两年的Java,但我终于把时间花在了一个像样的项目上 我正处于需要创建一个人(患者)以入院的阶段。他们需要先去前台,然后去GP的办公室,然后回到他们的起始位置 我已经研究了一个路径查找,但对我来说它似乎真的很复杂。我理解它的工作原理,但不确定如何在我的游戏中实现它 到目前为止,用户可以放置一个接待台,并建立一个家庭医生的办公室。每一个都有一个“使用点”,这将是患者必须到达的地方。网格方格只

我目前正在写一个非常基本的Java游戏,它基于

我对爪哇很陌生,第一年就在这所大学学习。我断断续续地做了将近两年的Java,但我终于把时间花在了一个像样的项目上

我正处于需要创建一个人(患者)以入院的阶段。他们需要先去前台,然后去GP的办公室,然后回到他们的起始位置

我已经研究了一个路径查找,但对我来说它似乎真的很复杂。我理解它的工作原理,但不确定如何在我的游戏中实现它

到目前为止,用户可以放置一个接待台,并建立一个家庭医生的办公室。每一个都有一个“使用点”,这将是患者必须到达的地方。网格方格只能满或不满,不会有不同的地形

我还不太确定是否要粘贴任何代码,因为在过去的几个月里,我已经学习了很多新的GUI技术,所以粘贴代码很麻烦。我的计划是到达里程碑1,让患者先到办公桌,然后到办公室,然后离开。一旦我有这个,我会整理代码更多


我见过很多A*的实现和许多不同的类型。有人能给我一个可以合作的起点吗?我应该尝试修改一组已经编写好的类,还是从头开始编写自己的类?

如果您想要一个*,它是基于网格的寻路的最佳实现

这可能会帮助您:

编辑:前面的链接既可以作为一组可实现的类,也可以作为定制路径查找方法的指南,以满足您的需求。

这本书对*。我今天实际上要写一个实现。。。如果我这样做,我会把密码扔到这里

代码已经完成,太大了,无法放在这里,所以您可以从以下位置获取代码:(自签名证书,但服务器不会做任何坏事)

我在书中大部分时间都遵循了伪代码,但我使所有内容都更加面向对象,这比我迄今为止在*中看到的任何内容都要多

你有一个由瓷砖组成的迷宫。每个磁贴都有一个位置和一个障碍物(如果没有障碍物,则为空)

您可以使用探路器(如AStar)查找给定起点和终点位置之间的最短路径。您将获得一条返回路径,其中包含从开始到结束需要经过的分幅

您可以通过提供不同的HeuristicCalculator来更改启发式计算(当前的HeuristicCalculator只是检查是否有障碍物,并计算出要通过的最短瓷砖数,您可以为不同的障碍物添加权重,例如,如果您不喜欢默认值)

代码是LGPL下的许可证,因此如果您进行更改并分发应用程序,则必须使更改可用。请随时将错误报告/修复发送到许可证注释中的电子邮件地址(可在每个标题中找到)


考试后我将(从来没有)对它进行评论,但我认为这很简单。

如果您编写自己的实现,自然会学到很多关于寻路的知识。但是你也会花很多时间去做


查看处理一般图形的库,它有一个很好的API,并且支持最短路径算法,而不仅仅是一个*

这是我迄今为止看到的信息最丰富的寻路帖子:

也许你找到了你想要的,但这里有一个链接,它很好地解释了*寻路。我必须在中为我的游戏实现A*,这对我理解它的工作原理有很大帮助


哇,我喜欢这样,反应非常快。谢谢,如果你这么做了,那就太棒了。如果我真的使用了你的实现,我当然会给你满分!不用担心(这里只有少数以前的学生知道我的真名:-)只要你发布一些有趣、广泛或酷的东西,你就会得到快速的回复。在很多人没有经验的领域中提出精确的技术问题,或者写得不好、细节不多的问题,你会看到这样做的安静一面。:)代码已经发布(见链接)链接无法访问。啊,是的,我在几个月前第一次研究我的游戏创意时发现了这个。我会重读一遍,看看是否有用。谢谢:)请参阅我的帖子,获取A*实现的链接。这个问题很好,对我帮助很大!然而,我认为这个问题将在stack overflow 2020中被解决,因为有些人在帖子中看不到任何代码:(链接(实际上)已断开。它重定向到该站点的主页。链接(实际上)已断开:您无权访问此服务器上的/~csc245/teaching/CS1015/practicals/astarturial.htm。