【问题标题】:AS3 Simple AI, find player in viewfield?AS3 Simple AI,在视野中寻找玩家?
【发布时间】:2011-08-29 00:41:57
【问题描述】:

大家好,我正在研究一个简单的 Flash 游戏,并且有几个敌人在该区域巡逻。我让它们每个都有大约 35 度的视角和 150 像素的距离。问题是他们可以看穿墙壁。我如何检查看守的球员视线之间是否有一堵墙?

我想到了光线追踪,但不知道如何实现它。我也想过可能在玩家和守卫之间画一个矩形,然后对墙壁进行碰撞检查,但又不知道如何实现它..

有什么想法吗?
谢谢, 最大

【问题讨论】:

标签: actionscript-3 artificial-intelligence collision-detection


【解决方案1】:

我觉得你离得不远了。

由于您的墙壁可能是精灵或其他显示对象,因此您知道它们的位置等。

然后您可以绘制一个包含 alpha 0 的不透明精灵来体现您的敌人的视野范围,然后在所有墙壁和所有视野范围内进行碰撞测试。 这也将使您能够在玩家和所有敌人的视野范围之间进行碰撞检测。

经过快速搜索this might be what you need

干杯

【讨论】:

  • 这是我的主意,但如果警卫盯着你,而你身后是墙,会发生什么?
  • 如果你知道每面墙的位置、玩家和你的后卫的视线方向,你应该可以计算出你的后卫和你的球员之间是否有墙
  • 你能举一个简单的例子来说明如何做到这一点吗?我知道这是可能的,只是不知道怎么做。
  • 我已经有一段时间没有做一些 Flash 开发了,所以恐怕我无法帮助你。不过这是可能的,而且你离得不远:)
【解决方案2】:

只是一个想法。
保持代码不变,但要进行第二次测试。
如果它使用您当前的代码找到目标,请运行另一个测试,以通过射线类型测试查看它们之间是否有一堵墙。
这将使您的工作代码保持原样,并将用于射线测试的字段最小化到目标的宽度。

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多