微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使 Libgdx 平铺地图变暗

如何解决使 Libgdx 平铺地图变暗

我是 Libgdx 的新手,正在制作具有某些功能的游戏原型。我目前无法实现的其中一项是使地图变暗,以便我的角色可以在黑暗地图中“发光”。

混合输出前:

Before Darkening

目前,我使用 TiledMapTiledMapRenderer 加载我的地​​图。

加载我的地​​图:

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,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();
    }

我的混合尝试:

My attempt

我尝试混合,但无法使周围环境地图变暗。

问:有没有办法使 TiledMap 变暗?

我要提前感谢大家的建议和帮助!

解决方法

您可以获得渲染地图的批次并在绘制前应用色调。通过减少所有 RGB 值(或变亮等),色调会变暗。

final float darken =0.5f;
tiledMapRenderer.getBatch().setColor(darken,darken,1f);

然后你不需要设置清晰的颜色和混合。 是的,setColor 应该被称为 setTint !!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。