Android libgdx:主菜单不';不显示游戏类libgdx
我是libgdx的新手,我对屏幕和主菜单有点问题。 我有一个主菜单类,它与点击演员一起工作。单击的代码为:Android libgdx:主菜单不';不显示游戏类libgdx,android,menu,libgdx,screen,render,Android,Menu,Libgdx,Screen,Render,我是libgdx的新手,我对屏幕和主菜单有点问题。 我有一个主菜单类,它与点击演员一起工作。单击的代码为: pulsanteplay.addListener( new InputListener() { @Override public boolean touchDown(InputEvent event, float x, `float y, int pointer, int button) {
pulsanteplay.addListener(
new InputListener() {
@Override
public boolean touchDown(InputEvent event, float x, `float y, int pointer, int button) {
System.out.println("click play");
game.setScreen(new GameClass());
return false;
}
});
它是有效的。如果我调用Gdx.app.exit()代码>它可以工作。如果我叫下一个班,那就行了
public class SplashScreen implements Screen {
private SpriteBatch batch;
private Texture ttrSplash;
private Timer timer;
private MainMenu mainMenuScreen;
public SplashScreen() {
super();
batch = new SpriteBatch();
ttrSplash = new Texture("quadrato.png");
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(ttrSplash, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
batch.end();
}
@Override
public void hide() { }
@Override
public void pause() { }
@Override
public void resume() { }
@Override
public void show() { }
@Override
public void resize(int width, int height) { }
@Override
public void dispose() {
ttrSplash.dispose();
batch.dispose();
}
当我调用一个扩展了游戏的类并有一个render方法时,它就不起作用了。屏幕不会改变,但真正生成了游戏类的事件。
有人能解释为什么会这样?我如何纠正这种不良行为?
感谢您的关注让该类扩展游戏
只需实现屏幕
并将代码放入相应的方法中即可。一个屏幕提供了游戏
所能提供的一切,因此您应该可以轻松转换。您的onCreate
代码可以放入show
方法或新屏幕的构造函数中。现在只需调用setScreen()
即可显示此屏幕。您应该只有一个扩展游戏的类!对不起,但是不行。这是我的类声明:公共类GameClass扩展了游戏实现ApplicationListener、InputProcessor、com.badlogic.gdx.Screen所有参与者的创建都在我称之为setScreen(new GameClass())的构造函数中;从我的mainmenu类,但MainMenuScreen始终可见,而game类则不可见……@user5618600这不是工作与否的问题。如果要更改屏幕
,应使用屏幕。否则,请实现您自己的屏幕管理系统。。设置屏幕
需要一个实现屏幕
的类。我想说的就是这么做。它的方法与Game
相同,但更多,而不是onCreate
您有show
或构造函数。这样做可以让你改变到任何你想要的屏幕。我在程序输入中的第一行通常是.setScreen(newsomescreen())代码>从那时起,我只使用screens.public类SplashScreen实现com.badlogic.gdx.Screen{private SpriteBatch batch;public SplashScreen(){batch=new SpriteBatch();System.out.println(“Costrutore SplashScreen”);}public void render(float delta){gdx.gl.glClearColor(0,0,0,1);Gdx.gl.glClear(GL20.gl_COLOR_BUFFER_BIT);batch.begin();Gdx.graphics.getHeight();batch.end();}尝试此操作。不工作:(