gpt4 book ai didi

user-interface - Libgdx 多屏

转载 作者:行者123 更新时间:2023-12-04 18:07:28 27 4
gpt4 key购买 nike

感谢我在这个论坛上解决其他问题的帮助,我设法推进了我的项目,但又出现了另一个障碍。

我在 libgdx 中为 java 实现多个屏幕时遇到问题。我想知道如何实现多个屏幕(一个用于主菜单,一个用于播放,一个用于加载屏幕,......)。

关于我应该如何构建我的屏幕类的示例或一些解释将非常有帮助。我尝试实现我自己的屏幕管理器,但效果不是很好......还有一些关于我应该如何处理屏幕的指示,因为每次从主菜单转到播放或选项菜单时创建屏幕并不是很好主意。非常感谢任何想法或代码示例或建议。

我现在拥有的是一些类别的游戏屏幕,当你渲染它们时,它们会在屏幕上绘制一些 GUI,但是像后退按钮这样的功能不起作用,因为我不知道如何在它们之间建立链接。

最佳答案

假设您有 3 个屏幕,MainMenuScreen、OptionsScreen、GameScreen。

首先,您需要在主类中声明它们。

它看起来像这样

public class MainClass extends Game implements ApplicationListener {

private GameScreen gameScreen;
private MenuScreen menuScreen;
private OptionsScreen optionsScreen;

@Override
public void create() {



}
setGameScreen()
{
gameScreen=new GameScreen(this);
setScreen(gameScreen);
}
setMenuScreen()
{
menuScreen=new menuScreen(this);
setScreen(menuScreen);
}
setOptionsScreen()
{
optionsScreen=new OptionsScreen(this);
setScreen(gameScreen);
}



@Override
public void dispose() {

super.dispose();
}

@Override
public void render() {

Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

super.render();
}

@Override
public void resize(int width, int height) {

super.resize(width, height);
}

@Override
public void pause() {
super.pause();
}

@Override
public void resume() {
super.resume();
}
}

现在你得到的每个屏幕都需要有一个 MainClass 变量和它的构造函数。

让我们说 GameScreen 类,它会像
public class GameScreen implements Screen{

private MainClass mainClass;

public GameScreen(MainClass mc)
{
mainClass=mc;
}
// your methods (show,render, pause, etc)
}

现在,当您想更改屏幕时,只需在屏幕中使用
mainClass.setMenuScreen();

关于user-interface - Libgdx 多屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23637052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com