首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libGDX:在侧写机上实现人工智能

libGDX:在侧写机上实现人工智能
EN

Stack Overflow用户
提问于 2016-10-14 22:37:52
回答 1查看 353关注 0票数 2

我在做一个2D的副手游戏。

描述:

我使用libGDX和人工智能扩展。游戏将在android上发布( AI不应该是重燃消耗)。我的地形不是基于网格的,它是一个过程生成的多边形高度图(没有洞穴)。

有三种类型的敌人(NPC) -近距离(子弹)和联合战斗.

实体有三种移动方式-左、右和跳.所以有些人可以像在照片上一样在地面上盘旋。我想让与地形相距y的节点工作,但如果玩家跳跃,接近战斗的敌人就没有路径(我没有测试它,但我假设它)。

我在基于网格的游戏中看到了许多例子,但不是我的场景。

请原谅我的知识不足,几天前我刚刚开始了人工智能的发展。

问题:

  • AI (来自libGDX)与(几乎)无限世界兼容吗?
  • 如何设置节点?
  • AI可以用来计算子弹方向来击中玩家吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-18 12:39:27

首先,我不知道libGDX,但是如果你想要有一个无限的世界,你必须编程它。这意味着你随机生成地形并在内存中销毁它,如果它不再需要的话。如果你想无限地向左和右走,你必须有效地将你的世界存储在你的硬盘上,如果内存是满的。对于你的多边形,你只需要存储节点和一些数字作为对周围元素的引用,如果你想回到你的化身。

第二,因为您的游戏是二维的,所以可能的路径非常简单,您不需要路径查找算法。所以你不需要节点之类的东西。你需要的是类似的东西,让你的敌人知道什么时候他们互相攻击。AI只需要知道你的化身是左还是右,它是否可以直接到达。这是简单的几何计算。如果有可能跳过其他敌人,这就好像他们可以通过他们的道路。

最后,简单地用线性代数计算子弹方向,得到从你的化身到敌人的直线。您只需计算它是否与其他敌人或地形交叉,以了解您的化身是否可以被击中。

这里唯一的AI方面是确定敌人的行为。这可以用状态机来实现,其中敌人有aimingwaitingfollowingshooting这样的状态。取决于你的化身有多远,或者它能达到多远,状态会发生变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40052955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档