如何在没有 XML 的情况下在 Nifty GUI 中显示按钮?
How do I display Button in Nifty GUI without XML?
我正在尝试为我的游戏制作 GUI。我尝试了各种库,最终选择了 Nifty。我还没有找到任何有用的教程,因此我正在从代码示例中学习。
我想显示一个简单的 Button
,但我的代码似乎不起作用。我试过设置 Panel
的背景颜色,这一直有效。我不知道为什么 Button
没有显示。
这是我拥有的:
protected void prepareNifty(Nifty nifty) {
ScreenBuilder sb = new ScreenBuilder("start");
LayerBuilder lb = new LayerBuilder();
PanelBuilder pb = new PanelBuilder();
pb.control(new ButtonBuilder("btn1", "First Button!"){{
alignCenter();
valignCenter();
height("5%");
width("15%");
backgroundColor(Color.WHITE);
}});
pb.childLayoutCenter();
lb.childLayoutVertical();
lb.panel(pb);
sb.layer(lb);
nifty.addScreen("start", sb.build(nifty));
}
我应该补充一下我正在使用 Slick2D 并且我的 class 扩展了 NiftyBasicGame
.
如何显示 Button
并将其设置为绝对位置?
当您想使用默认控件(如 Button 控件)时,您还需要加载控件和样式。
试试这样的东西:
nifty.loadStyleFile("nifty-default-styles.xml");
nifty.loadControlFile("nifty-default-controls.xml");
new ScreenBuilder("start") {{
layer(new LayerBuilder("background") {{
backgroundColor("#f008");
childLayoutAbsolute();
control(new ButtonBuilder("showPopupButton", "SHOW") {{
x(SizeValue.px(100));
y(SizeValue.px(100));
interactOnClick("showPopup()");
}});
}});
}}.build(nifty);
nifty.gotoScreen("start");
除此之外,阅读 nifty-gui-the-manual-1.3.2.pdf
可能会有所帮助
我正在尝试为我的游戏制作 GUI。我尝试了各种库,最终选择了 Nifty。我还没有找到任何有用的教程,因此我正在从代码示例中学习。
我想显示一个简单的 Button
,但我的代码似乎不起作用。我试过设置 Panel
的背景颜色,这一直有效。我不知道为什么 Button
没有显示。
这是我拥有的:
protected void prepareNifty(Nifty nifty) {
ScreenBuilder sb = new ScreenBuilder("start");
LayerBuilder lb = new LayerBuilder();
PanelBuilder pb = new PanelBuilder();
pb.control(new ButtonBuilder("btn1", "First Button!"){{
alignCenter();
valignCenter();
height("5%");
width("15%");
backgroundColor(Color.WHITE);
}});
pb.childLayoutCenter();
lb.childLayoutVertical();
lb.panel(pb);
sb.layer(lb);
nifty.addScreen("start", sb.build(nifty));
}
我应该补充一下我正在使用 Slick2D 并且我的 class 扩展了 NiftyBasicGame
.
如何显示 Button
并将其设置为绝对位置?
当您想使用默认控件(如 Button 控件)时,您还需要加载控件和样式。
试试这样的东西:
nifty.loadStyleFile("nifty-default-styles.xml");
nifty.loadControlFile("nifty-default-controls.xml");
new ScreenBuilder("start") {{
layer(new LayerBuilder("background") {{
backgroundColor("#f008");
childLayoutAbsolute();
control(new ButtonBuilder("showPopupButton", "SHOW") {{
x(SizeValue.px(100));
y(SizeValue.px(100));
interactOnClick("showPopup()");
}});
}});
}}.build(nifty);
nifty.gotoScreen("start");
除此之外,阅读 nifty-gui-the-manual-1.3.2.pdf
可能会有所帮助