2013-05-04 86 views
-1

我遇到了纹理问题,并在我正在使用的小型原型中使用灯光。我知道如何使用RayHandlers来实现照明,但是当我在纹理的顶部放置纹理时,纹理始终是可见的(例如,不受光影响)。目前,我刚刚尝试使用Spritebatch,因为您通常会将纹理渲染到对象。使用照明时有没有不同的方式来做到这一点?Box2D和Box2DLighting在与纹理一起使用时不起作用

谢谢,刘易斯。

回答

0

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

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(); 
} 
相关问题