【发布时间】:2021-05-22 13:24:48
【问题描述】:
我正在尝试在 libGDX 中为 2D 游戏实现一个简单的 AI。如果玩家在范围内并且敌人可以看到玩家,AI 应该让敌人跟随玩家。为了确定敌人是否可以看到我正在使用 raycast 的玩家。
现在我的问题是,光线投射似乎不会与 Box2D 世界中的静态物体发生碰撞。
(这只是一个假设,静态主体是问题所在,因为它与动态主体配合得很好)
问题
默认情况下,libGDX 中的光线投射会与静态物体发生碰撞吗?或者有没有其他方法可以让光线投射与静态物体发生碰撞?
我在libGDX wiki 或API 中找不到任何相关信息。
到目前为止我已经尝试过什么
在这里,带有光线投射 AI 的敌人(左上角的那个)没有向玩家(右下角)移动,因为它们之间有一个动态物体(中间的另一个敌人),即正确地与光线投射发生碰撞。
但是如果我在敌人和玩家之间放置一个静态体,光线投射将不会检测到静态体,而只会检测到动态体(应该比静态体晚发现):
这里中间的静态物体没有被光线投射检测到。
我还测试了在静态主体上使用setSleepingAllowed(false),以确保它不只是在睡觉。但这也没有解决问题。
【问题讨论】:
标签: java libgdx box2d raycasting