【问题标题】:Scene2d Widgets won't resize properlyScene2d 小部件无法正确调整大小
【发布时间】:2015-07-01 22:21:35
【问题描述】:

我有一个带有文本字段的窗口和一个按钮,用于从用户那里获取一些输入。 最初窗口看起来很好,如下所示。

http://i.stack.imgur.com/ZDchq.png

当我调整窗口大小时,窗口绘制得很好,但窗口的 Widget 元素被部分绘制,如下所示。

http://i.stack.imgur.com/NTpBN.png

这是我的Screenshow() 函数的代码 :

@Override
public void show() {
    // TODO Auto-generated method stub
    game.assetManager.load("data/secondBackground.pack", TextureAtlas.class);
    game.assetManager.finishLoading();

    stage = new Stage();
    TextureAtlas backgroundAtlas = game.assetManager.get("data/secondBackground.pack", TextureAtlas.class);
    secondBackground = new Image(backgroundAtlas.findRegion("secondBackground"));

    stage.addActor(secondBackground);
    secondBackground.setFillParent(true);
    Color secondBackgroundColor = secondBackground.getColor();
    secondBackground.setColor(secondBackgroundColor.r, secondBackgroundColor.g, secondBackgroundColor.b, 0.5f);

    skin = new Skin(Gdx.files.internal("data/uiskin.json"));
    Gdx.input.setInputProcessor(stage);

    final TextField textFieldNickName = new TextField("", skin);
    textFieldNickName.setMessageText("Nick Name");
    textFieldNickName.setAlignment(Align.center);

    TextFieldStyle textFieldStyle = new TextFieldStyle();

    FileHandle fontFile = Gdx.files.internal("data/arial.ttf");
    FreeTypeFontGenerator generator = new FreeTypeFontGenerator(fontFile);
    FreeTypeFontParameter parameter = new FreeTypeFontParameter();
    parameter.size = 55;
    parameter.genMipMaps = true;
    FreeTypeBitmapFontData fontData = generator.generateData(parameter);
    BitmapFont ftFont = generator.generateFont(parameter);
    generator.dispose();
    textFieldStyle.font=ftFont;
    textFieldStyle.fontColor=Color.WHITE;
    textFieldStyle.cursor = skin.newDrawable("cursor");
    textFieldNickName.setStyle(textFieldStyle);

    Button okButton = new TextButton("OK",skin);

    Window nickNameWindow = new Window("Enter your nick name", skin);
    nickNameWindow.setPosition(0, 0);
    nickNameWindow.defaults().spaceBottom(10);
    nickNameWindow.row().fill().expandX();

    nickNameWindow.add(textFieldNickName).minWidth(stage.getWidth()/3).expandX().fillX();
    nickNameWindow.row();
    nickNameWindow.add(okButton).minWidth(100).expandX().fillX();
    nickNameWindow.pack();
    //nickNameWindow.setMovable(false);
    stage.addActor(nickNameWindow);
    nickNameWindow.setX(stage.getWidth()/2-nickNameWindow.getWidth()/2);
    nickNameWindow.setY(stage.getHeight()/2+stage.getHeight()/4-nickNameWindow.getHeight()/2);

}

是我做错了什么还是 libgdx 中的错误?

【问题讨论】:

    标签: java libgdx scene2d


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 2019-05-06
      相关资源
      最近更新 更多