变暗 Libgdx 平铺地图
Darken Libgdx Tiled Map
我是 Libgdx 的新手,正在制作具有某些功能的游戏原型。我目前无法实现的其中一项是将地图变暗,以便我的角色可以在黑暗的地图中“发光”。
混合输出前:
目前,我使用 TiledMap
和 TiledMapRenderer
加载我的地图。
加载我的地图:
TiledMap map = new TmxMapLoader().load("map/ascent/ascent.tmx");
float unitScale = 2f;
OrthogonalTiledMapRenderer tiledMapRenderer = new OrthogonalTiledMapRenderer(map, unitScale);
在我的render()
方法中:
@Override
public void render(float delta) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// Run the playMovement Method
player1Movement(playerHashMap.get(p1), delta);
// Draw the Map
tiledMapRenderer.setView(camera);
tiledMapRenderer.render();
// Set the brightness and blend function
float lightness = .1f;
Gdx.gl.glClearColor(lightness,lightness,lightness,1f);
tiledMapRenderer.getBatch().enableBlending();
tiledMapRenderer.getBatch().setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
// Begin Batch drawing
tiledMapRenderer.getBatch().begin();
// Draw the light
tiledMapRenderer.getBatch().draw(light, p1.box.x - 25f, p1.box.y - 25f, 80, 80);
// Draw the player
playerHashMap.forEach((player, input) -> player.draw(tiledMapRenderer.getBatch()));
tiledMapRenderer.getBatch().end();
}
我的混合尝试:
我尝试了混合,但无法使我周围的地图变暗。
Qn: 有什么方法可以使 TiledMap 变暗吗?
在此先感谢大家的指点和帮助!
您可以获得渲染地图的批次并在绘制之前应用色调。通过减少所有 RGB 值(或变亮等),色调会变暗。
final float darken =0.5f;
tiledMapRenderer.getBatch().setColor(darken,darken,darken,1f);
然后你不需要设置清晰的颜色和混合。
是的,setColor
应该叫 setTint
!!
我是 Libgdx 的新手,正在制作具有某些功能的游戏原型。我目前无法实现的其中一项是将地图变暗,以便我的角色可以在黑暗的地图中“发光”。
混合输出前:
目前,我使用 TiledMap
和 TiledMapRenderer
加载我的地图。
加载我的地图:
TiledMap map = new TmxMapLoader().load("map/ascent/ascent.tmx");
float unitScale = 2f;
OrthogonalTiledMapRenderer tiledMapRenderer = new OrthogonalTiledMapRenderer(map, unitScale);
在我的render()
方法中:
@Override
public void render(float delta) {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// Run the playMovement Method
player1Movement(playerHashMap.get(p1), delta);
// Draw the Map
tiledMapRenderer.setView(camera);
tiledMapRenderer.render();
// Set the brightness and blend function
float lightness = .1f;
Gdx.gl.glClearColor(lightness,lightness,lightness,1f);
tiledMapRenderer.getBatch().enableBlending();
tiledMapRenderer.getBatch().setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
// Begin Batch drawing
tiledMapRenderer.getBatch().begin();
// Draw the light
tiledMapRenderer.getBatch().draw(light, p1.box.x - 25f, p1.box.y - 25f, 80, 80);
// Draw the player
playerHashMap.forEach((player, input) -> player.draw(tiledMapRenderer.getBatch()));
tiledMapRenderer.getBatch().end();
}
我的混合尝试:
我尝试了混合,但无法使我周围的地图变暗。
Qn: 有什么方法可以使 TiledMap 变暗吗?
在此先感谢大家的指点和帮助!
您可以获得渲染地图的批次并在绘制之前应用色调。通过减少所有 RGB 值(或变亮等),色调会变暗。
final float darken =0.5f;
tiledMapRenderer.getBatch().setColor(darken,darken,darken,1f);
然后你不需要设置清晰的颜色和混合。
是的,setColor
应该叫 setTint
!!