【发布时间】:2016-08-18 19:55:44
【问题描述】:
我想问您是否可以使用 box2d 灯光,以便您只能看到灯光区域中的对象。例如,我有一个手电筒,只想在灯光下看到游戏对象。我设法做了这样的事情,但问题是游戏对象的精灵失去了它们的颜色强度,因为我在精灵顶部渲染了灯光,因此游戏本身看起来不太好(即使它是效果我想要)。我使用带有包含精灵的用户数据的 box2d 主体。我想不出任何办法。是否有任何正确的方法可以使用 box2d 灯光库使这些对象可见并具有真实颜色? (我将灯光设置为 X 射线来执行此操作;我也在 java 中将它与 libgdx 一起使用)。
【问题讨论】:
-
我不太确定你在问什么——你问是否有可能,但你说你已经做到了,但不喜欢这种效果。您的代码目前在做什么?你想让它做什么不同的事情?尝试发布MCVE 和一些示例图片,我们将从那里开始。
-
我有类似迷宫和角色的东西。我希望一切都变暗,而在迷宫中看到的唯一方法是使用玩家手持的闪光灯,它是锥形灯。问题在于,要隐藏精灵,您必须先在循环中渲染灯光,然后再渲染精灵,因为 libgdx 会按照您放置它们的顺序绘制东西。此外,当您渲染灯光时,除了灯光区域会变暗。正如我之前所说的那样,这样做的问题是,如果我正常绘制它们,闪光灯区域中的精灵没有颜色。
-
抱歉重复评论,但第一个太长了,我想添加一些非常基本的代码,让人们知道我想说什么。基本代码:
public void render(float delta) { renderSprites(); renderLights();}和渲染灯将是一个附加了 rayHandler 的世界,并且在绘制精灵后将调用方法rayHandler.updateAndRender();,这将导致当您将灯光放在精灵上时颜色会被真正洗掉。
标签: java libgdx box2d light box2dlights