Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除缓冲区LibGdx_Java_Android_User Interface_Libgdx - Fatal编程技术网

Java 删除缓冲区LibGdx

Java 删除缓冲区LibGdx,java,android,user-interface,libgdx,Java,Android,User Interface,Libgdx,我已经为我的Libgdx游戏创建了多个Screens。 每当我退出游戏(桌面版)时,eclipse控制台中就会出现一个红色句子,显示删除缓冲区(1) 号码根据退出游戏时处于活动状态的屏幕更改。 什么是“删除缓冲区”? 我一定要担心吗 另外,android版的my game在第二个屏幕上崩溃,而桌面版运行正常。 提前谢谢。 屏幕1 屏幕2 public class MainMenu implements Screen { private Stage stage; private

我已经为我的
Libgdx
游戏创建了多个
Screen
s。
每当我退出游戏(桌面版)时,eclipse控制台中就会出现一个红色句子,显示删除缓冲区(1)
号码根据退出游戏时处于活动状态的
屏幕更改。
什么是“删除缓冲区”?
我一定要担心吗

另外,android版的my game在第二个
屏幕上崩溃,而桌面版运行正常。
提前谢谢。 屏幕1

屏幕2

public class MainMenu implements Screen {  
    private Stage stage;
    private Table table;
    private TextButton playButton, exitButton;
    private Skin skin;
    private BitmapFont white, black;
    private TextureAtlas atlas;
    private TextButtonStyle textButtonStyle;
    private SpriteBatch batch;
    private Sprite sprite;

    @Override
    public void render(float delta) {
            Gdx.gl.glClearColor(1, 1, 1, 1);
            Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
            batch.begin();
            sprite.draw(batch);
            batch.end();
            stage.act(delta);
            stage.draw();
            Gdx.input.setInputProcessor(stage);
            if (Gdx.input.isKeyPressed(Keys.ESCAPE)) {
                    Gdx.app.exit();
            }        
    }

    @Override
    public void show() {
            batch = new SpriteBatch();
            sprite = new Sprite(new Texture("img/Title.jpg"));
            sprite.setOrigin(sprite.getWidth() / 2f, sprite.getHeight() / 2f);
            sprite.setSize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
            sprite.setPosition(Gdx.graphics.getWidth() / 2f - sprite.getWidth()
                   / 2f, Gdx.graphics.getHeight() / 2f - sprite.getHeight() / 2f);
            sprite.setRotation(0);

            white = new BitmapFont(Gdx.files.internal("fonts/White.fnt"), false);
            black = new BitmapFont(Gdx.files.internal("fonts/Black.fnt"), false);
            black.setScale(Gdx.graphics.getWidth() / 1440f,
                    Gdx.graphics.getHeight() / 900f);
            stage = new Stage();
            atlas = new TextureAtlas("ui/Button.pack");
            skin = new Skin(atlas);
            table = new Table(skin);
            table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
            textButtonStyle = new TextButtonStyle();
            textButtonStyle.up = skin.getDrawable("ButtonUp9");
            textButtonStyle.down = skin.getDrawable("ButtonDown9");
            textButtonStyle.pressedOffsetX = 1;
            textButtonStyle.pressedOffsetY = -1;
            textButtonStyle.font = black;
            exitButton = new TextButton("Exit", textButtonStyle);
            exitButton.pad(10);
            playButton = new TextButton("Play", textButtonStyle);
            playButton.pad(10);
            playButton.addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Scenarios());
                    Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                            .play(1);
                    Gdx.input.vibrate(50);
                            dispose();
                    }                
            });
            exitButton.addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            Gdx.app.exit();
                            dispose();
                    }
            });
            table.add(playButton);
            table.row();

            table.add(exitButton);
            table.getCell(exitButton).spaceTop(50f);

            stage.addActor(table);
    }

    @Override
    public void dispose() {
            stage.dispose();
            black.dispose();
            white.dispose();
            skin.dispose();
            batch.dispose();
            sprite.getTexture().dispose();        
    }
}
屏幕3

public class Scenarios implements Screen {  
    private TextButtonStyle buttonStyle;
    private TextButton[] scene;
    private BitmapFont black;
    private Stage stage;
    private Table table;
    private TextureAtlas atlas;
    private Skin skin;

    @Override
    public void render(float delta) {
            Gdx.gl.glClearColor(1, 1, 1, 1);
            Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
            stage.act(delta);
            stage.draw();
            Gdx.input.setInputProcessor(stage);
            if (Gdx.input.isKeyPressed(Keys.BACKSPACE)) {
                    ((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());
            } else if (Gdx.input.isKeyPressed(Keys.ESCAPE)) {
                    Gdx.app.exit();
            }
    }

    @Override
    public void show() {
            atlas = new TextureAtlas("ui/Button.pack");
            skin = new Skin(atlas);
            stage = new Stage();
            table = new Table(skin);
            black = new BitmapFont(Gdx.files.internal("fonts/Black.fnt"), false);
            black.setScale(Gdx.graphics.getWidth() / 1280f,
                    Gdx.graphics.getHeight() / 720f);
            table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
            buttonStyle = new TextButtonStyle();
            buttonStyle.up = skin.getDrawable("ButtonUp9");
            buttonStyle.down = skin.getDrawable("ButtonDown9");
            buttonStyle.pressedOffsetX = 1;
            buttonStyle.pressedOffsetY = -1;
            buttonStyle.font = black;
            scene = new TextButton[3];
            scene[0] = new TextButton("Scenario 1", buttonStyle);
            scene[1] = new TextButton("Scenario 2", buttonStyle);
            scene[2] = new TextButton("Scenario 3", buttonStyle);
            scene[0].addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Intro1());
                            Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                                    .play(1);
                            Gdx.input.vibrate(50);
                            dispose();
                    }
            });
            scene[1].addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Intro2());
                            Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                                    .play(1);
                            Gdx.input.vibrate(50);
                            dispose();
                    }
            });
            scene[2].addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Intro3());
                    Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                            .play(1);
                            Gdx.input.vibrate(50);
                            dispose();
                    }
            });
            scene[0].pad(10);
            scene[1].pad(10f);
            scene[2].pad(10f);

            table.add(scene[0]);

            table.add(scene[1]);
            table.getCell(scene[1]).space(20f);
            table.add(scene[2]);
            stage.addActor(table);
    }

    @Override
    public void dispose() {
            stage.dispose();
            skin.dispose();
            atlas.dispose();
            black.dispose();
    }
}

您忘记处理声音/音乐对象。您可以在游戏类的dispose方法中执行此操作。

我们需要有关您的
屏幕的更多信息。请给我们看一些代码。@springbua我根据您的要求添加了代码,谢谢您设置了
InputProcessor
every
render
循环。在
show()
方法中设置它,因为它保持不变。我看到的只是一个小小的失败。仍然是相同的错误@springbua AL-lib:(WW)FreeDevice:(0x7fb9db886e00)删除2个缓冲区。当你切换到屏幕2时,你说android版本崩溃了。你有错误记录吗?
public class Scenarios implements Screen {  
    private TextButtonStyle buttonStyle;
    private TextButton[] scene;
    private BitmapFont black;
    private Stage stage;
    private Table table;
    private TextureAtlas atlas;
    private Skin skin;

    @Override
    public void render(float delta) {
            Gdx.gl.glClearColor(1, 1, 1, 1);
            Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
            stage.act(delta);
            stage.draw();
            Gdx.input.setInputProcessor(stage);
            if (Gdx.input.isKeyPressed(Keys.BACKSPACE)) {
                    ((Game) Gdx.app.getApplicationListener()).setScreen(new MainMenu());
            } else if (Gdx.input.isKeyPressed(Keys.ESCAPE)) {
                    Gdx.app.exit();
            }
    }

    @Override
    public void show() {
            atlas = new TextureAtlas("ui/Button.pack");
            skin = new Skin(atlas);
            stage = new Stage();
            table = new Table(skin);
            black = new BitmapFont(Gdx.files.internal("fonts/Black.fnt"), false);
            black.setScale(Gdx.graphics.getWidth() / 1280f,
                    Gdx.graphics.getHeight() / 720f);
            table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
            buttonStyle = new TextButtonStyle();
            buttonStyle.up = skin.getDrawable("ButtonUp9");
            buttonStyle.down = skin.getDrawable("ButtonDown9");
            buttonStyle.pressedOffsetX = 1;
            buttonStyle.pressedOffsetY = -1;
            buttonStyle.font = black;
            scene = new TextButton[3];
            scene[0] = new TextButton("Scenario 1", buttonStyle);
            scene[1] = new TextButton("Scenario 2", buttonStyle);
            scene[2] = new TextButton("Scenario 3", buttonStyle);
            scene[0].addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Intro1());
                            Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                                    .play(1);
                            Gdx.input.vibrate(50);
                            dispose();
                    }
            });
            scene[1].addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Intro2());
                            Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                                    .play(1);
                            Gdx.input.vibrate(50);
                            dispose();
                    }
            });
            scene[2].addListener(new ClickListener() {
                    @Override
                    public void clicked(InputEvent event, float x, float y) {
                            ((Game) Gdx.app.getApplicationListener())
                                    .setScreen(new Intro3());
                    Gdx.audio.newSound(Gdx.files.internal("sounds/button.mp3"))
                            .play(1);
                            Gdx.input.vibrate(50);
                            dispose();
                    }
            });
            scene[0].pad(10);
            scene[1].pad(10f);
            scene[2].pad(10f);

            table.add(scene[0]);

            table.add(scene[1]);
            table.getCell(scene[1]).space(20f);
            table.add(scene[2]);
            stage.addActor(table);
    }

    @Override
    public void dispose() {
            stage.dispose();
            skin.dispose();
            atlas.dispose();
            black.dispose();
    }
}