LibGDX 光线投射不会与 Box2D 静态碰撞 object
LibGDX raycast does not collide with Box2D static object
我正在尝试为 libGDX 中的 2D 游戏实现一个简单的 AI。如果玩家在范围内并且敌人可以看到玩家,AI 应该让敌人跟随玩家。为了确定敌人是否可以看到我正在使用 raycast.
的玩家
现在我的问题是,在 Box2D 世界中 。
光线投射似乎没有与静态 body 碰撞
(这只是一个假设,static body 是问题所在,因为它在 dynamic body 下工作正常)
问题
默认情况下,libGDX 中的光线投射会与静态物体发生碰撞吗?还是有其他方法可以使光线投射与静态物体发生碰撞?
我在 libGDX wiki or in the API 中找不到任何关于此的信息。
到目前为止我尝试了什么
我在敌人和玩家之间用动态 body 测试了光线投射 AI:
这里有光线投射 AI 的敌人(左上角的那个)没有向玩家(右下角的)移动,因为它们之间有一个动态 body(另一个敌人在中间),它与光线投射正确碰撞。
但是如果我在敌人和玩家之间放置一个静态 body 光线投射将不会检测到静态 body,而只能检测到动态 body(应该是发现晚于静态body):
此处中间的静态 body 未被光线投射检测到。
我还测试了在静态 body 上使用 setSleepingAllowed(false)
,以确保它不只是在睡觉。但这也没有解决它。
在 box2d 中,RayCasts 应该与静态物体发生碰撞,所以您的问题可能出在其他地方。
请记住,光线投射回调不会按照到起点的距离顺序报告固定装置。相反,顺序是随机的,您必须在回调中处理它。如果这不是问题所在,您可能需要在问题中添加一些代码。
我正在尝试为 libGDX 中的 2D 游戏实现一个简单的 AI。如果玩家在范围内并且敌人可以看到玩家,AI 应该让敌人跟随玩家。为了确定敌人是否可以看到我正在使用 raycast.
的玩家现在我的问题是,在 Box2D 世界中 。
光线投射似乎没有与静态 body 碰撞(这只是一个假设,static body 是问题所在,因为它在 dynamic body 下工作正常)
问题
默认情况下,libGDX 中的光线投射会与静态物体发生碰撞吗?还是有其他方法可以使光线投射与静态物体发生碰撞?
我在 libGDX wiki or in the API 中找不到任何关于此的信息。
到目前为止我尝试了什么
我在敌人和玩家之间用动态 body 测试了光线投射 AI:
这里有光线投射 AI 的敌人(左上角的那个)没有向玩家(右下角的)移动,因为它们之间有一个动态 body(另一个敌人在中间),它与光线投射正确碰撞。
但是如果我在敌人和玩家之间放置一个静态 body 光线投射将不会检测到静态 body,而只能检测到动态 body(应该是发现晚于静态body):
此处中间的静态 body 未被光线投射检测到。
我还测试了在静态 body 上使用 setSleepingAllowed(false)
,以确保它不只是在睡觉。但这也没有解决它。
在 box2d 中,RayCasts 应该与静态物体发生碰撞,所以您的问题可能出在其他地方。
请记住,光线投射回调不会按照到起点的距离顺序报告固定装置。相反,顺序是随机的,您必须在回调中处理它。如果这不是问题所在,您可能需要在问题中添加一些代码。