Nat*_*han 1 dialog stage fadein libgdx
当我显示一个Dialog时
someDialog.show(someStage);
Run Code Online (Sandbox Code Playgroud)
该对话框显示默认的FadeIn操作.舞台也渐渐淡出.因此它使我的背景随着舞台逐渐消失.
我怎样才能防止这种情况发生?
编辑:这里是我的示例代码:
在屏幕显示方法中:
Texture bg = new Texture(Gdx.files.internal(src));
stage = new Stage(game.getViewport(), batch);
stage.addActor(someDialog) //just normal dialog
Run Code Online (Sandbox Code Playgroud)
渲染代码:
@Override
public void render(float delta) {
super.render(delta);
getBatch().begin();
getBatch().draw(backgroundTexture, 0, 0, width, height);
getBatch().end();
getStage().act(delta);
getStage().draw();
time += delta;
}
Run Code Online (Sandbox Code Playgroud)
我在某个事件触发时显示对话框:
dialog.show(getStage());
Run Code Online (Sandbox Code Playgroud)
我试图将null作为第二个参数放到show方法中
dialog.show(getStage(), null);
Run Code Online (Sandbox Code Playgroud)
并且使得舞台和对话框都不会淡入但是想要仅保留对话框的效果,或者至少不保留背景效果.
Stage完成时不会清理SpriteBatch的颜色,所以当循环返回时,最后使用的颜色仍然应用于sprite批处理.在您的情况下,最后使用的颜色恰好是对话框的颜色.
要解决此问题,getBatch().setColor(Color.WHITE);请getBatch().draw(backgroundTexture, 0, 0, width, height);在行之前添加.
我不认为你的整个舞台正在消退.现在,你的背景纹理与舞台无关,只是它们都共享使用SpriteBatch.
| 归档时间: |
|
| 查看次数: |
664 次 |
| 最近记录: |