我遇到了纹理问题,并在我正在使用的小型原型中使用灯光。我知道如何使用RayHandlers来实现照明,但是当我在纹理的顶部放置纹理时,纹理始终是可见的(例如,不受光影响)。目前,我刚刚尝试使用Spritebatch,因为您通常会将纹理渲染到对象。使用照明时有没有不同的方式来做到这一点?Box2D和Box2DLighting在与纹理一起使用时不起作用
谢谢,刘易斯。
我遇到了纹理问题,并在我正在使用的小型原型中使用灯光。我知道如何使用RayHandlers来实现照明,但是当我在纹理的顶部放置纹理时,纹理始终是可见的(例如,不受光影响)。目前,我刚刚尝试使用Spritebatch,因为您通常会将纹理渲染到对象。使用照明时有没有不同的方式来做到这一点?Box2D和Box2DLighting在与纹理一起使用时不起作用
谢谢,刘易斯。
如果您向我们展示代码,它会更好。没有看到你的代码,我只能说, 你必须首先在对象上绘制纹理并使用rayhandler渲染灯光。
如果你想让你的纹理被照明的影响,你必须先绘制纹理然后渲染的灯光,就像这样:
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();
}