我遇到了Textures的问题,并在我正在研究的小型原型中使用照明。我理解如何使用RayHandlers和诸如此类的东西来实现照明,但是当我将纹理放置在Body的顶部时,纹理始终是恒定的可见性(例如,不受光影响)。目前我刚尝试使用Spritebatch,因为您通常会将纹理渲染到对象。使用灯光时有不同的方法吗?
谢谢,刘易斯。
答案 0 :(得分:1)
如果你想让你的纹理受到光照的影响,你必须首先绘制纹理,然后渲染光线,如下所示:
public void render(SpriteBatch batch) {
super.render(batch);
Sprite sprite = (Sprite) body.getUserData();
sprite.setPosition(body.getPosition().x, body.getPosition().y);
sprite.setOrigin(texture.getWidth()/2, texture.getHeight()/2);
sprite.setRotation(body.getAngle() * MathUtils.radiansToDegrees);
sprite.draw(batch);
rayHandler.setCombinedMatrix(getCamera().combined);
rayHandler.updateAndRender();
}
答案 1 :(得分:0)
如果您向我们展示代码,那就更好了。没有看到你的代码,我可以这么说 你必须首先在对象上绘制纹理,然后使用rayhandler渲染光源。