2013-05-04 42 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(); 
}