首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LibGDX射线广播不与Box2D静态对象发生冲突

LibGDX射线广播不与Box2D静态对象发生冲突
EN

Stack Overflow用户
提问于 2021-05-22 13:24:48
回答 1查看 214关注 0票数 2

我试图在libGDX中为2D游戏实现一个简单的人工智能。如果玩家在射程内,如果敌人能看到玩家,AI应该让敌人跟随该玩家。为了确定敌人是否能看到玩家,我使用了一个射线广播

现在我的问题是,射线广播似乎没有与Box2D world中的静态物体发生碰撞。

(这只是一个假设,即静态车身是问题所在,因为它在动态车身中运行得很好)

问题

默认情况下,libGDX中的光线投射会与静态物体发生碰撞吗?还是有其他方法使光线投射物与静止物体发生碰撞?

我在libGDX维基API接口中找不到这方面的任何信息。

到目前为止我尝试过的

我在敌人和玩家之间用一个动态的身体测试了射线投AI:

在这里,雷射AI的敌人(左上角的那个)没有向玩家移动(右下角),因为他们之间有一个动态的身体(另一个敌人在中间),这是正确地与光线投射的碰撞。

但是,如果我在敌人和玩家之间放置一个静态物体,光线投射器不会检测到静态体,而只会检测到动态体(应该比静态体更晚发现):

在此,光线投射无法检测到中间的静态体。

我还测试了如何在静态身体上使用setSleepingAllowed(false),以确保它不仅仅是睡眠。但这也没能解决问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-22 20:37:31

在box2d中,RayCasts应该与静态体发生碰撞,所以您的问题可能在其他地方。

请记住,光线广播回调并不是按照距离起点的顺序报告固定装置。相反,顺序是随机的,您必须在回调中处理这些问题。如果这不是问题所在,您可能需要向问题中添加一些代码。

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

https://stackoverflow.com/questions/67650011

复制
相关文章

相似问题

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