当前位置: 首页 > 知识库问答 >
问题:

在libgdx上的启动模式="SingleWG"不起作用,游戏在手机锁上重启

姜弘新
2023-03-14

我在libgdx上有一个项目,我正在使用一个启动屏幕。问题是,每次我在主菜单上屏蔽手机并再次解锁时,游戏都会再次显示闪屏,我希望它不要“重启”游戏,而是呆在原地不动

编辑:为了避免发布所有不必要的代码,我将解释我是如何制作的:

简单的类扩展游戏调用setScreen启动屏幕,然后在3秒钟后启动屏幕调用主菜单,我希望启动屏幕不会再次出现,除非游戏被销毁并再次打开

代码:

public MainMenuScreen(final TowerConquest gam) {
    game = gam;
}

@Override
public void show() {
    stage = new Stage(new FillViewport(800, 480));
    Gdx.input.setInputProcessor(stage);
    //((OrthographicCamera)stage.getCamera()).setToOrtho(false, 800, 480);
    atlas = new TextureAtlas("skins/userInterface.pack");
    skin = new Skin(atlas);
    table = new Table(skin);
    table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    white = new BitmapFont(Gdx.files.internal("font/white.fnt"), false);
    black = new BitmapFont(Gdx.files.internal("font/black.fnt"), false);

    TextButtonStyle textButtonStyle = new TextButtonStyle();
    textButtonStyle.up = skin.getDrawable("normalbutton");
    textButtonStyle.down = skin.getDrawable("pressedbutton");
    textButtonStyle.disabled = skin.getDrawable("dissabledbutton");
    textButtonStyle.pressedOffsetX = 1;
    textButtonStyle.pressedOffsetY = -1;
    textButtonStyle.font = black;
    buttonPlay = new TextButton("PLAY", textButtonStyle);
    buttonPlay.pad(20);
    buttonPlay.addListener(new ClickListener(){
        @Override
        public void clicked(InputEvent event, float x, float y) {
            game.setScreen(new testGame(game));
            //Gdx.input.vibrate(150);
            dispose();
        }
    });

    buttonExit = new TextButton("EXIT", textButtonStyle);
    buttonExit.pad(20);
    buttonExit.addListener(new ClickListener(){
        @Override
        public void clicked(InputEvent event, float x, float y) {
            dispose();
            Gdx.app.exit();
        }
    });

    LabelStyle headingStyle = new LabelStyle(white, Color.WHITE);

    heading = new Label("Tower Conquest", headingStyle);
    table.add(heading);
    table.getCell(heading).padBottom(50);
    table.row();
    table.add(buttonPlay);
    table.getCell(buttonPlay).spaceBottom(15);
    table.row();
    table.add(buttonExit);
    table.debug();
    table.setOrigin(table.getWidth()/2, table.getHeight()/2);
    table.setFillParent(true);
    stage.addActor(table);      
}

@Override
public void render(float delta) {
    Gdx.gl.glClearColor(0, 0, 0.2f, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    stage.act(delta);
    stage.draw();
}

@Override
public void resize(int width, int height) {
    my resizes...
}

@Override
public void pause() {
}

@Override
public void resume() {
}

@Override
public void hide() {
}

@Override
public void dispose() {
    all disposes..
}

共有1个答案

穆单鹗
2023-03-14

我找到答案了把这个加到旅客名单上

android:configChanges="keyboard|keyboardHidden|screenSize|orientation">

这是因为当屏幕被锁定时,它会将方向更改为纵向,因此它会重新启动应用程序,打开该选项,不会重新启动应用程序

 类似资料:
  • 我在 Libgdx 游戏上的触摸接收器有问题。 在我的玩家主页上,我有这个: 当我运行我的游戏时,除了触摸监听器有时工作正常,但是在触摸几秒钟后。 Gdx.app.log(“已点击”、“已触摸”);通过触摸发射。 但是Gdx.app.log("点击了","很棒");或者Gdx.app.log("Clicked "," nooooooooooo ");我必须执行长按,直到触摸被触发。 谢谢 我添加了

  • 问题内容: 我正在使用LibGDX开发Android游戏。菜单屏幕上有4个按钮,但是这些按钮中的按钮不起作用。 如何激活LibGDX中的按钮? 问题答案: 您必须将按钮添加到舞台并调用

  • 问题内容: 这是我的代码,它可以在台式机和平板电脑上完美运行,但不能在移动设备上运行。是代码还是在移动设备上无法使用某些字体 问题答案: 您需要添加所有需要的内容来喜欢这个示例: 资料来源 :https://css-tricks.com/snippets/css/using-font-face/ 希望能有所帮助,加油。 ( 如果您需要转换字体,则需要此 字体生成器 )

  • 问题内容: 我在正在翻译动画的UILabel上有一个轻击手势。动画期间,只要在标签上轻按,轻按手势就不会有响应。 这是我的代码: 手势代码: 有任何想法吗?谢谢 :) 问题答案: 使用Tapgesture后,您将无法完成自己的工作,原因有1个。手势与标签的框架相关联。开始动画时,标签的最后一帧立即更改,而您只是在观看假电影(动画)。如果您能够触摸屏幕上的(0,900),它将在发生动画时照常触发。不

  • [package.json]我尝试了所有我尝试更新npm、node和webpack的方法。 这就是我所做的:npx创建-反应-应用测试 cd testapp npm起动或纱线起动 给我这个: 输出: 项目依赖关系树可能有问题。这可能不是CreateReact应用程序中的错误,而是您需要在本地修复的错误。 Create react App提供的react脚本包需要依赖项: “网页包”:“4.39.1

  • 问题内容: 我正在尝试使形状的动画随着样本大小的增加(从100增加到1000)而呈指数分布。还有一个滑块,用于配置发行版的lambda参数,以及一个用于启动动画的按钮。 我的问题是,即使布局得到渲染,当我按下开始按钮时也没有动画发生。到目前为止,这是我的尝试: 为了简化起见,我在Python笔记本中运行它: 问题答案: 您应该注意函数的名称空间。 考虑 因此,您需要处理实际对象,而不是它们的某些本