Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 访问由Box2D灯光投射的光线_Java_Libgdx_Box2d_Raycasting_Box2dlights - Fatal编程技术网

Java 访问由Box2D灯光投射的光线

Java 访问由Box2D灯光投射的光线,java,libgdx,box2d,raycasting,box2dlights,Java,Libgdx,Box2d,Raycasting,Box2dlights,我目前正在用Box2D lights库和LibGDX开发一个游戏 目前一切都很好,但是,我很难从聚光灯获取光线 如果对象不在光线中,我希望停止渲染它们。有没有办法访问库正在投射的光线,这样我就可以确定某个对象是否挡住了光线 通过JavaDocs和互联网快速搜索没有结果。也许是通过思考? 像light.setContactFiltering()这样的方法存在,但是它们只能阻止某些对象受到灯光的影响 我不希望通过光线投射自己来检测对象,而是尝试访问现有的光线投射,以尝试节省计算能力 谢谢你的帮助 您

我目前正在用Box2D lights库和LibGDX开发一个游戏

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

如果对象不在光线中,我希望停止渲染它们。有没有办法访问库正在投射的光线,这样我就可以确定某个对象是否挡住了光线

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

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


谢谢你的帮助

您可以使用Box2D光线投射,从光源沿灯光方向投射光线,并查看它击中了什么。如果情况合适,您也可以在libGDX相机中使用内置的截锥剔除

经过进一步研究,我意识到我跳过了Light类中的一个方法

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


希望这能派上用场

可能的重复如果其他可能的重复答案没有意义,那么:获取锥形灯光的详细信息,然后根据灯光的点、半径进行快速计算,圆锥体的方向和角度,你将能够计算出哪些物体受到光线的影响,并以此为基础进行渲染。我将看看是否可以使用基于半圆的公式来检测该区域中的物体。谢谢你的主意