【问题标题】:Access rays cast by Box2D Lights访问 Box2D Lights 投射的光线
【发布时间】:2017-05-08 23:41:48
【问题描述】:

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

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

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

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

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

感谢您的帮助!

【问题讨论】:

  • 如果其他可能的重复答案没有意义,那么:获取锥形光细节,然后根据光点、半径、方向和角度快速计算锥体,您将能够计算出受光影响的对象并以此为基础进行渲染。
  • 我会看看是否可以使用基于半圆的公式来检测该区域中的对象。感谢您的想法

标签: java libgdx box2d raycasting box2dlights


【解决方案1】:

您可以使用 Box2D RayCasting 从光源沿光的方向进行投射,并查看它击中的内容。如果情况合适,您还可以使用 libGDX 相机中内置的 Frustum 剔除

【讨论】:

    【解决方案2】:

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

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

    希望这能派上用场。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多