当与纹理一起使用时,Box2D和Box2DLighting中的照明不起作用

时间:2013-05-04 21:59:46

标签: java box2d libgdx

我遇到了Textures的问题,并在我正在研究的小型原型中使用照明。我理解如何使用RayHandlers和诸如此类的东西来实现照明,但是当我将纹理放置在Body的顶部时,纹理始终是恒定的可见性(例如,不受光影响)。目前我刚尝试使用Spritebatch,因为您通常会将纹理渲染到对象。使用灯光时有不同的方法吗?

谢谢,刘易斯。

2 个答案:

答案 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渲染光源。