Android Libgdx显示对话框
我正在使用libgdx进行一个简单的乒乓球游戏,我试图在按下后退按钮时显示一个对话框。 我的活动实现了Screen、InputProcessor和keyDown方法,到目前为止,我写了以下内容:Android Libgdx显示对话框,android,libgdx,Android,Libgdx,我正在使用libgdx进行一个简单的乒乓球游戏,我试图在按下后退按钮时显示一个对话框。 我的活动实现了Screen、InputProcessor和keyDown方法,到目前为止,我写了以下内容: @Override public boolean keyDown(int keycode) { if (Gdx.input.isKeyPressed(Input.Keys.BACK )) { final Dialog diag = new Dialog("Pause", s
@Override
public boolean keyDown(int keycode) {
if (Gdx.input.isKeyPressed(Input.Keys.BACK )) {
final Dialog diag = new Dialog("Pause", skin);
TextButton Ok = new TextButton(" Ok ", skin);
TextButton Annulla = new TextButton(" Annulla ", skin);
diag.getButtonTable().add(Ok).row();
diag.getButtonTable().add(Annulla);
diag.show(stage);
stage.addActor(diag);
}
return false;
}
在渲染方法中,我有:
@Override
public void render(float delta) {
Gdx.input.setInputProcessor(stage);
update(delta);
draw(delta);
}
updatedelta更新球和桨。
drawdelta在屏幕上绘制分数
我的问题是,对话框从未出现
编辑:
在你的drawdelta方法中有stage.draw吗?是的,还有stage.act编辑:发布我的draw方法你可能应该把stage draw放在该方法的末尾。请在resize方法中加入stage.getViewport.updatewidth、height、true调用,并在create或Show中调用resize一次。我已经完成了您所说的,但仍然没有发生任何事情。我添加了System.out.printltest;EDIT2:我已经将Gdx.input.setInputProcessorstage更改为Gdx.input.setInputProcessorthis,并且它可以工作。不知道为什么。谢谢你的帮助
private void draw(float dt) {
Gdx.gl.glClearColor(R / 255.0f, G / 255.0f, B / 255.0f, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act();
stage.draw();
batch.begin();
String text = "SCORE 1: " + score1 + " SCORE 2: " + score2;
font.draw(batch, text, (Gdx.graphics.getWidth() - font.getBounds(text).width )/2, Gdx.graphics.getHeight() - font.getBounds(text).height);
String text2 = "Velocity: " + Math.sqrt((ball.getVelocityX() * ball.getVelocityX() )+ (ball.getVelocityY() * ball.getVelocityY() ));
font.draw(batch, text2 , (Gdx.graphics.getWidth() - font.getBounds(text2).width )/2, Gdx.graphics.getHeight() - (font.getBounds(text2).height + font.getBounds(text).height));
batch.end();
drawBall(dt);
drawPaddles(dt);
}