-1

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

谢谢,刘易斯。

4

2 回答 2

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();
}
于 2014-09-22T11:03:25.487 回答
0

如果您向我们展示代码会更好。在没有看到您的代码的情况下,我只能说您必须首先在对象上绘制纹理并使用 rayhandler 渲染灯光。

于 2013-05-06T07:25:00.563 回答