LIBGDX-刷新屏幕



我创建了一个代码,当你按下按钮时,你会跳转到代码中的网站。我想把它们分类,就像这个屏幕是学校用的,另一个是业余爱好用的。然而,当我运行它时,它会自动结束。我搜索了解决方案,发现刷新屏幕就是解决方案。如果可能的话,有人能告诉我清除屏幕的方法吗。

这是我第一次在这样的网站上提问,所以我不知道我应该把代码放在里面吗。。。抱歉

public PlayState(GameStateManager gsm) {
super(gsm);
button = new Buttons();
font = new BitmapFont();
img = new Texture("sq.jpg");
}
@Override
protected void handleInput() {
}
@Override
public void update(float dt) {
handleInput();
button.update();
}
@Override
public void render(SpriteBatch sb) {
Gdx.gl.glClearColor(100f, 100f, 100f,1.0f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Buttons.setUp(sb, font, img, gsm);
sb.draw(img, 170, 700, 180, 140);
font.draw(sb, "to hobby", 225, 705);
}
@Override
public void dispose() {
}

}

@Override
public void create () {
}
public static void setUp(SpriteBatch sb, BitmapFont font, Texture img, GameStateManager gsm)
{
sb.begin();
sb.draw(img, -10, 700, 180, 140);
font.draw(sb, "Math textbook", 35, 705);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 17 && Gdx.input.getX() < 135) && (Gdx.input.getY() > 27 && Gdx.input.getY() < 113)){
Gdx.net.openURI("https://www.pearsonactivelearn.com/app/library/ebook?id=OTEzNDY1fGJvb2t8MTE2fDA=");
}
}
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 197 && Gdx.input.getX() < 315) && (Gdx.input.getY() > 27 && Gdx.input.getY() < 113)){
gsm.set(new SecoundPlayState(gsm));
}
}
sb.draw(img, 350, 700, 180, 140);
font.draw(sb, "Anime", 390, 705);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 377 && Gdx.input.getX() < 495) && (Gdx.input.getY() > 27 && Gdx.input.getY() < 113)){
Gdx.net.openURI("https://kissanime.nz/kissanime-home.html");
}
}
sb.draw(img, -10, 550, 180, 140);
font.draw(sb, "Google Classroom", 35, 555);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 17 && Gdx.input.getX() < 135) && (Gdx.input.getY() > 179 && Gdx.input.getY() < 265)){
Gdx.net.openURI("https://classroom.google.com/u/4/h");
}
}
sb.draw(img, 170, 550, 180, 140);
font.draw(sb, "Twitter", 225, 555);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 197 && Gdx.input.getX() < 315) && (Gdx.input.getY() > 179 && Gdx.input.getY() < 265)){
Gdx.net.openURI("https://twitter.com/home");
}
}
sb.draw(img, 350, 550, 180, 140);
font.draw(sb, "Manage Bac", 390, 555);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 377 && Gdx.input.getX() < 495) && (Gdx.input.getY() > 179 && Gdx.input.getY() < 265)){
Gdx.net.openURI("https://isaaugsburg.managebac.com/student");
}
}
sb.draw(img, -10, 400, 180, 140);
font.draw(sb, "Pamoja", 35, 405);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 17 && Gdx.input.getX() < 135) && (Gdx.input.getY() > 331 && Gdx.input.getY() < 417)){
Gdx.net.openURI("https://learn.pamojaeducation.com/");
}
}
sb.draw(img, 170, 400, 180, 140);
font.draw(sb, "HackerRank", 225, 405);
if(Gdx.input.isButtonJustPressed(Input.Buttons.LEFT)){
if((Gdx.input.getX() > 197 && Gdx.input.getX() < 315) && (Gdx.input.getY() > 331 && Gdx.input.getY() < 417)){
Gdx.net.openURI("https://www.hackerrank.com/");
}
}
sb.end();
}
@Override
public void render () {
}
@Override
public void dispose () {
batch.dispose();
}
public void update() {
}

}

您的渲染方法已经清除了屏幕(大约每秒60次(:

@Override
public void render(SpriteBatch sb) {
Gdx.gl.glClearColor(100f, 100f, 100f,1.0f);//sets the clear color to gray
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);// CLEARS THE SCREEN
Buttons.setUp(sb, font, img, gsm);
sb.draw(img, 170, 700, 180, 140);//draws the button again
font.draw(sb, "to hobby", 225, 705);//draws the text on the button again
}

所以问题可能出在其他方面。创建一个新问题来找出问题的原因可能是个好主意(包括对"自动结束"时发生的情况的描述,控制台输出中显示的异常或错误,如果可能的话,还有一个最小的可复制示例(

最新更新