我正在Flash中使用Box2D实现一个简单的排球比赛。我需要为CPU播放器实现一些AI。我们叫他杰克吧。所以杰克需要预测球被人类球员约翰击中后球会落在哪里。我有以下信息:预测球路径 - 人工智能
- 初始线速度(无论是在X & y方向)的球,当约翰 撞击它。
- John击中球时的初始位置。 (x & y坐标 值)
- 重力的值。
- 楼层的y位置值是球会落下的位置。
- 约翰击球的角度。
- 球遵循射弹轨迹。
因此,杰克需要预测当它碰到地板时球的位置(x值)是多少。
我觉得把球遵循弹道轨迹的问题,可能会被视为相同的 - 从一些已知的初始位置,已知初始速度与固定重力发射炮弹,并预测其着陆点。着陆点的y值也是已知的。空气阻力为零。
有什么样的数学公式可能有助于预测着陆点的x值吗?我看了一些抛射方程式,但其中大多数都以'时间'作为变量。我需要一个不涉及这个'时间'变量的解决方案。任何形式的这个问题的解决方法也将不胜感激。谢谢! :)
这不是人造智能,而是外部弹道学。我认为AI会在晚些时候进来。 – 2011-05-10 17:59:50
无论如何,你的排球比赛是否必须模拟球的运动?为什么不在AI部分使用同样的东西?实际上,我认为,预先计算一次轨迹并将其用于时间演变和AI行动是完全正确的。也许通过在顶部添加一些随机错误来降低AI的运行轨迹,从而调整Jack的游戏质量?找到第一次地面接触的地方将仅仅是轨迹上的后处理步骤。 – 2011-05-10 18:01:37
@大卫 - 是的,你可以这么说!但是关于“人工智能游戏开发”的大部分书籍都包含了预测弹丸轨迹的主题。 :) @Tilman - 实际上,先生,我使用Box2D来模拟球的运动和碰撞,它负责处理所有这些数学问题。所以我不能使用它,直到我真正了解这背后的数学。我很感谢你的建议,但如果我不知道方程式,恐怕我无法预先计算轨迹运动。 – 2011-05-10 18:31:18