你好每个人!暑假足够长吗?你喜欢任何相关的电子游戏或动画系列吗?请告诉我!
在这里,夏天充满了美好的经历。我们与我们的魔兽世界公会组织了另一次会议,这和往常一样有趣!我也加入了我的家人几天,这是重要的,因为他们住500公里。离我远点。
回到工作中,我开始玩 gdxAI,所以今天我会谈论 人工智能!听起来不好听吗
我建议您 在继续阅读之前从github下载代码 。
指数
- 关于gdxAI
- 转向行为(Steering Behavior)
- 实施:到达(Implementation: Arrive)
- 定义
- 建筑
- 具体实施
- 结论
直接来自维基:
gdxAI我是一个完全用Java编写的人造智能框架,用于使用libGDX进行游戏开发。
从我的角度来看,这个框架的最重要的特征是:
- 运动AI(Movement AI):提供不同的方式来实现人物的运动。它包括“指导行为”,我将在今天的练习中使用。
- 寻路(Pathfinding):允许人物以独立的方式跨越迷宫。
- 决策(Decision Making):机器的“大脑”。我发现非常有趣的“行为树”如何工作。我还不知道他们,这是一个发现!
今天我只会介绍gdxAI和“指导行为”概念,并向您展示我如何使用“到达策略”。在随后的帖子中,我想解释追求战略和探路,因为我有一些想法来应用它们。
继续 阅读本文之前,我强烈建议您仔细阅读维基。
虽然 这里是一个更好和完整的定义,我想用自己的话解释他们:
转向行为是一组算法,允许角色根据策略以不同的方式移动到环境中。
所以,例如,跟随你的怪物,当你走近他时,使用 追求的(pursuing)策略。当你跑出他的范围之外,他会走回到他困扰他之前的地步,雇用一个到达的(arriving )策略。一旦他在那里,他将实行一个漫游的(wandering )战略,这将使他在一个范围内随机移动。
战略也可以结合起来,例如,敌人可以追赶(pursuing )你,同时逃避(evading )地牢的墙壁。
PA:要使用它,您需要从Maven导入gdx-ai:1.5.0模块,并将您的LibGDX库更新到最后一个版本。
- 定义
到达行为将代理人移动到目标位置。目标是说,“包围”有两个圆形区域:抵达容限和减速半径。抵达宽容是代理人到达目标地区。减速半径是代理人开始减速的区域。当进入到达容差区域时,代理的速度应为0。
这是课程的完整描述。
- 建筑
从现在起,所有易受有针对性或需要一个AI必须实现字符 可控。重要的是要强调指导者并不意味着智慧。一个PC 可以是可控的,但他的动作会被玩家的输入来定义。然而,一名暴徒将“决定”哪里去。在下图中(点击放大),您将能够在架构级别中看到如何实施Steerable:
因此,PC将通过AbstractMob实施Steerable; 和mobs,通过Automaton。是的,间接使我感到好恶心。
- 具体实施
你可以在这里找到完整的版本。
现在我们来关注实体。在以前版本的代码中,我使用Box2D进行物理模拟。被拖的小猫被给了一个速度和角度,使他移动。航点是 当小猫达到范围时发起了一个onCollide事件的传感器。这个事件处理了小猫停止,使其速度为0。
很难,很难,而且很酷。现在它不再存在了。其实我摆脱了整个 PhysicalObjectsFactory。我不再使用Box2D了(现在)。
现在一切都是用行为来处理的。小猫将继续服从“到达可行的行动”。以前,当航路点移动时,我们不得不通知小猫改变。但这不是必需的。无论发生什么事情,小猫都会尝试到达航点的位置。如果你移动路点,小猫会自动跟随它。
而我们只需要几行代码来使这个工作:
看到?小猫扩展了 架构点描述的Automaton类。
在构造函数中,它调用setBehavior方法,该方法创建了Arrive行为,并将小猫绑定到路点:
然后设置到达容差和减速半径区域:
最后将这个行为分配给小猫:
现在改变航点的位置会自动使小猫向前移动:
只有一个好的方法来测试它...玩吧!
嗯,我想这是完成这个职位的好时机,虽然还有一些其他想法,我已经开始工作了(如果你深入看看代码,你可能会发现一些草图)。但我不希望我的帖子太长。
正如我所说,在接下来的更新中,我将实现寻路和追求行为,意思是...我们将很快就会有怪物!通过观察者的眼睛,当我使用框架和架构时,它看起来并不像任何事情发生变化,因为代码可能已经发生了根本改变,但功能仍然是一样的。所以我愿意在场景中插入一些新的演员。
我也从事游戏设计。您可能会注意到,当您将光标放在它们上时,小猫站起来。所有AI主题完成后,我会解释一下。
最后,我想表示道歉,因为我意识到我将我的旧帖子链接到github上的最新版本的代码,而不是具体的提交版本。我现在正在修复所有的蓝色链接,如果您可以报告任何可能遇到的错误链接,我将非常感激。
好,谢谢阅读!如果您认为我值得拥有,请喜欢,分享和订阅!