LIBGDX - 刷新屏幕

LIBGDX - refresh the screen

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

这是我第一次在这样的网站上提问所以我不知道我是否应该把代码放在上面是否这么长...抱歉

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

}

所以问题可能出在其他地方。创建一个新问题来查找问题的原因可能是个好主意(包括对“它自动结束”时发生的情况的描述,控制台输出中显示的异常或错误,如果可能的话 minimal reproducable example)