访问 Box2D Lights 投射的光线

Access rays cast by Box2D Lights

我目前正在使用 Box2D 灯光库和 LibGDX 开发游戏。

目前一切正常,但是,我无法访问来自 ConeLight 的光线。

如果对象不在光线中,我希望停止渲染对象。有没有什么方法可以访问图书馆投射的光线,这样我就可以计算出是否有物体挡住了光线?

通过 JavaDocs 和 Internet 快速搜索没有得到任何结果。也许通过反思?
light.setContactFiltering() 之类的方法存在,但它们只能阻止某些对象受到光线的影响。

我不希望自己进行光线投射来检测物体,而是尝试访问现有的光线投射以尝试节省计算能力。

感谢您的帮助!

您可以在光源的方向上使用来自光源的 Box2D RayCasting,看看它击中了什么。如果情况合适,您还可以在 libGDX Cameras

中使用内置的 Frustum 剔除

经过更多研究,我意识到我跳过了 Light 中的一个方法 class。

如果有人想检查一个点是否在一盏灯内,你可以使用light.contains(x,y)

希望这能派上用场。