人工智能I - 到达行为

你好每个人!暑假足够长吗?你喜欢任何相关的电子游戏或动画系列吗?请告诉我!

在这里,夏天充满了美好的经历。我们与我们的魔兽世界公会组织了另一次会议,和往常一样有趣!我也加入了我的家人几天,这是重要的,因为他们住500公里。离我远点。

回到工作中,我开始玩  gdxAI,所以今天我会谈论  人工智能!听起来不好听吗人工智能I - 到达行为

我建议您 在继续阅读之前从github下载代码  。

指数

  1. 关于gdxAI
  2. 转向行为Steering Behavior
  3. 实施:到达Implementation: Arrive
    • 定义
    • 建筑
    • 具体实施
  4. 结论


关于gdxAI

直接来自维基

gdxAI我是一个完全用Java编写的人造智能框架,用于使用libGDX进行游戏开发。

从我的角度来看,这个框架的最重要的特征是:

运动AIMovement AI):提供不同的方式来实现人物的运动。它包括“指导行为”,我将在今天的练习中使用。

寻路Pathfinding):允许人物以独立的方式跨越迷宫。

决策Decision Making):机器的“大脑”。我发现非常有趣的“行为树”如何工作。我还不知道他们,这是一个发现!

今天我只会介绍gdxAI和“指导行为”概念,并向您展示我如何使用“到达策略”。在随后的帖子中,我想解释追求战略和探路,因为我有一些想法来应用它们。

继续 阅读本文之前,我强烈建议您仔细阅读维基


2.指导/转向行为(Steering behavior

虽然  这里是一个更好和完整的定义,我想用自己的话解释他们:

转向行为是一组算法,允许角色根据策略以不同的方式移动到环境中。

所以,例如,跟随你的怪物,当你走近他时,使用  追求的(pursuing策略。当你跑出他的范围之外,他会走回到他困扰他之前的地步,雇用一个到达的(arriving 策略。一旦他在那里,他将实行一个漫游的(wandering 战略,这将使他在一个范围内随机移动。

战略也可以结合起来,例如,敌人可以追赶(pursuing 你,同时逃避(evading 地牢的墙壁。


实施:到达(Arrive

PA:要使用它,您需要从Maven导入gdx-ai:1.5.0模块,并将您的LibGDX库更新到最后一个版本

  • 定义

到达行为将代理人移动到目标位置。目标是说,“包围”有两个圆形区域:抵达容限和减速半径。抵达宽容是代理人到达目标地区。减速半径是代理人开始减速的区域。当进入到达容差区域时,代理的速度应为0。

人工智能I - 到达行为

是课程的完整描述。

  • 建筑

从现在起,所有易受有针对性或需要一个AI必须实现字符  可控。重要的是要强调指导者并不意味着智慧。一个PC 可以是可控的,但他的动作会被玩家的输入来定义。然而,一名暴徒将“决定”哪里去。在下图中(点击放大),您将能够在架构级别中看到如何实施Steerable:

人工智能I - 到达行为

因此,PC将通过AbstractMob实施Steerable; 和mobs,通过Automaton。是的,间接使我感到好恶心。人工智能I - 到达行为

  • 具体实施

你可以在这里找到完整的版本。

现在我们来关注实体。在以前版本的代码中,我使用Box2D进行物理模拟。被拖的小猫被给了一个速度和角度,使他移动。航点是 当小猫达到范围时发起了一个onCollide事件的传感器。这个事件处理了小猫停止,使其速度为0。

很难,很难,而且很酷。现在它不再存在了。其实我摆脱了整个  PhysicalObjectsFactory。我不再使用Box2D了(现在)。

现在一切都是用行为来处理的。小猫将继续服从“到达可行的行动”。以前,当航路点移动时,我们不得不通知小猫改变。但这不是必需的。无论发生什么事情,小猫都会尝试到达航点的位置。如果你移动路点,小猫会自动跟随它。

而我们只需要几行代码来使这个工作:

看到?小猫扩展了 架构点描述的Automaton类。

在构造函数中,它调用setBehavior方法,该方法创建了Arrive行为,并将小猫绑定到路点:

然后设置到达容差和减速半径区域:

最后将这个行为分配给小猫:

现在改变航点的位置会自动使小猫向前移动:

只有一个好的方法来测试它...玩吧!


结论

嗯,我想这是完成这个职位的好时机,虽然还有一些其他想法,我已经开始工作了(如果你深入看看代码,你可能会发现一些草图)。但我不希望我的帖子太长。

正如我所说,在接下来的更新中,我将实现寻路和追求行为,意思是...我们将很快就会有怪物!通过观察者的眼睛,当我使用框架和架构时,它看起来并不像任何事情发生变化,因为代码可能已经发生了根本改变,但功能仍然是一样的。所以我愿意在场景中插入一些新的演员。

我也从事游戏设计。您可能会注意到,当您将光标放在它们上时,小猫站起来。所有AI主题完成后,我会解释一下。

最后,我想表示道歉,因为我意识到我将我的旧帖子链接到github上的最新版本的代码,而不是具体的提交版本。我现在正在修复所有的蓝色链接,如果您可以报告任何可能遇到的错误链接,我将非常感激。

好,谢谢阅读!如果您认为我值得拥有,请喜欢,分享和订阅!

人工智能I - 到达行为


原文出处:http://fightingkitten.webcindario.com/?p=302