目前正在制作游戏并尝试在单击“菜单”按钮时覆盖屏幕 - 我认为这应该是相当常见/简单的,但仍然存在实现它的问题。
我目前的设置:
- TiledMapRenderer:渲染 TMX 瓦片(背景/地图)
- SpriteBatch:用于各种资产(例如玩家图像)
- 阶段:按住菜单按钮
- ShaderProgram:使用 GLSL 创建叠加/阴影效果
- SpriteBatch 和 map 设置为使用 ShaderProgram
正如许多人所建议的那样,出于性能考虑,我只使用一个 SpriteBatch - 因此各种资产和菜单舞台都使用相同的精灵批次。
着色器的目的是添加一个深色/半透明覆盖层以使屏幕变灰,以便菜单在打开时更易于阅读。
我遇到的主要问题是,因为资产和菜单共享相同的 SpriteBatch,它们也共享相同的着色器......所以,当我启用着色效果时,所有内容(背景和菜单按钮)都是灰色的。
我怎样才能只使用一个 SpriteBatch 但只将着色器应用于背景(并保持菜单按钮正常/无阴影)?