【问题标题】:LIBGDX - refresh the screenLIBGDX - 刷新屏幕
【发布时间】:2020-11-08 19:47:59
【问题描述】:

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

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

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() {
}

}

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    您的渲染方法已经清除了屏幕(大约每秒 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

    【讨论】:

    • 谢谢!也许我可以停止调用渲染调用的调用并调用不同的类...我会尝试!
    猜你喜欢
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多