1

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

目前一切都很好,但是,我很难从 ConeLight 获取光线。

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

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

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

感谢您的帮助!

4

2 回答 2

1

您可以使用来自光源的 Box2D RayCasting 沿着光的方向,看看它击中了什么。如果情况合适,您还可以使用 libGDX 相机中内置的 Frustum 剔除

于 2017-05-09T08:58:58.357 回答
0

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

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

希望这能派上用场。

于 2017-05-18T10:32:26.717 回答