代码之家  ›  专栏  ›  技术社区  ›  Relequestual

寻路2D Java游戏?

  •  12
  • Relequestual  · 技术社区  · 16 年前

    我目前正在编写一个非常基本的Java游戏。 Theme Hospital .

    我对Java很陌生,我第一年在大学学习。我已经做了将近两年的JAVA ON和OFF,但我终于把我的时间奉献给一个像样的项目了。

    我正处于创建一个人(患者)入院的阶段。他们需要先到接待处,再到全科医生的办公室,然后回到他们的起始位置。

    我已经研究了一个路径发现,但它对我来说似乎真的很复杂。我理解它是如何工作的,但我不确定如何将它应用到我的游戏中。

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

    我对粘贴任何代码都犹豫不决,因为在过去的几个月里,我已经学习了很多与GUI相关的新技术,这很麻烦。我的计划是到达里程碑1,让病人先到办公桌,然后到办公室,然后离开。一旦我有了这个,我会整理更多的代码。

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

    5 回复  |  直到 16 年前
        1
  •  8
  •   TheBrenny    11 年前

    您确实需要一个*,它是基于网格的寻路的最佳实现。

    这可能会帮助您:

    http://www.cokeandcode.com/main/tutorials/path-finding/

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

        2
  •  4
  •   Ande    8 年前

    这是迄今为止我看到的最有信息的寻路帖子: http://www.ai-blog.net/archives/000152.html

        3
  •  3
  •   TofuBeer    12 年前

    AI for Game Developers 对A*有很好的解释。实际上我今天要写一个实现…如果我这样做,我会把代码扔到这里。

    代码已完成,它太大,无法放在此处,因此您可以从以下位置获取: https://chaos.bcit.ca/svn/public/astar/ (自签名证书,但服务器不会做任何坏事)。

    我大部分时间都遵循书中的伪代码,但是我使所有的东西都比我迄今为止所看到的面向对象的*。

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

    您可以使用路径查找器(如astar)查找给定开始和结束位置之间的最短路径。你会得到一条返回的路径,其中包括从开始到结束你需要经历的瓷砖。

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

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

    考试后我会(从来没有)到处发表评论,但我认为这是非常直截了当的。

        4
  •  2
  •   Tomas Andrle    16 年前

    当然,如果编写自己的实现,您将了解许多关于寻路的知识。但你也会花很多时间去做。

    退房 JGraphT 通常处理图形的库具有良好的API和支持 more 最短路径算法。

        5
  •  0
  •   Peter Mortensen icecrime    8 年前

    也许你找到了你想要的,但这里有一个链接,上面有一个关于*寻路的很好的解释。我必须在 C++ 它帮助我理解它是如何工作的。

    http://www.abdn.ac.uk/~csc245/teaching/CS1015/practicals/aStarTutorial.htm

    推荐文章