gpt4 book ai didi

java - LibGDX Tablelayout 菜单不显示

转载 作者:行者123 更新时间:2023-11-29 05:46:51 24 4
gpt4 key购买 nike

我正在 LibGDX 中编写一个处理背景纹理的新程序,并且刚刚开始实现屏幕。但是当我测试它时,它只显示一个具有给定分辨率的黑色清除屏幕。我在已实现的 Game 类中使用 setScreen(screen)- 方法调用屏幕。

代码如下:

public class MenuScreen implements Screen{
Table table;
Stage stage;
TextButton button;
TextField textField;
Texture texture;
Pic2Box2d game;

public MenuScreen(Pic2Box2d gameH)
{
this.game = gameH;
stage = new Stage(0, 0, true);
table = new Table();
}
public void create()
{
final TextFieldStyle fieldStyle = new TextFieldStyle(new BitmapFont(), Color.WHITE, new BitmapFont(), Color.GRAY, null, null, null);
textField = new TextField("path", fieldStyle);
final TextButtonStyle buttonStyle = new TextButtonStyle();
buttonStyle.font = new BitmapFont();
buttonStyle.fontColor = Color.WHITE;
buttonStyle.pressedOffsetY = 1f;
buttonStyle.downFontColor = new Color(0.8f, 0.8f, 0.8f, 1f);
button = new TextButton("Übernehmen", buttonStyle);
button.setClickListener(new ClickListener() {
@Override
public void click(Actor actor, float x, float y) {
if(textField.getText() != "" && textField.getText() != "path")
{
texture = new Texture(textField.getText());
game.setScreen(new Workscreen(texture));
}
}
});
table.row();
table.add(textField);
table.add(button);
stage.addActor(table);
}
@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(0, 0, 0, 1);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}

最佳答案

@idaNakav 关于使用 show() 和设置 Stage 尺寸是正确的。但是,这仍然会给你一个黑屏,因为你的 table 没有任何尺寸。尝试更改您的 show() 代码以包含 table.setFillParent(true)

它应该看起来像这样(代码基于您提供的示例)。

@Override
public void show() {
final TextFieldStyle fieldStyle = new TextFieldStyle(new BitmapFont(), Color.WHITE, null, null, null);
textField = new TextField("path", fieldStyle);
final TextButtonStyle buttonStyle = new TextButtonStyle();
buttonStyle.font = new BitmapFont();
buttonStyle.fontColor = Color.WHITE;
buttonStyle.pressedOffsetY = 1f;
buttonStyle.downFontColor = new Color(0.8f, 0.8f, 0.8f, 1f);
button = new TextButton("Übernehmen", buttonStyle);
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
if (textField.getText() != "" && textField.getText() != "path") {
texture = new Texture(textField.getText());
game.setScreen(new Workscreen(texture));
}
}
});


table.row();
table.add(textField);
table.add(button);

// Make the table fill the stage.
table.setFillParent(true);

stage.addActor(table);
}

关于java - LibGDX Tablelayout 菜单不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15555713/

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