Are*_*rte 43 java layout libgdx
我一直在关注这个:https://code.google.com/p/table-layout/#Quickstart,以便对LibGDX中的表进行一些介绍.我已经用按钮试验了一下.
现在我有这个代码:
Label introLabel = new Label("Skip Intro", skin);
TextField introText = new TextField("", skin);
table.add(introLabel);
table.add(introText).width(100);
table.row();
Run Code Online (Sandbox Code Playgroud)
但它抛出一个NullPointerException
因为:No com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle registered with name: default
我只将我的按钮(从屏幕上的其他位置)添加到皮肤中:
atlas = new TextureAtlas("assets/gui/buttons/alpha_generic_buttons.pack");
skin = new Skin();
skin.addRegions(atlas);
Run Code Online (Sandbox Code Playgroud)
我现在的问题是桌子需要什么样的纹理,最重要的是,如何将它们与桌子一起使用?
Jyr*_*117 86
当谈到libGDX中的UI时,你会发现它与你之前使用的非常不同(yaml,json,xml,UI Builders等).
表格布局 - 这是Scene2d UI的结构和格式.你提供的链接是一个很棒的教程,但是你已经意识到,你需要一个皮肤去做大多数事情.
LibGDX Skin - 由3个东西组成,一个纹理包图像,一个纹理包文件和一个用于设置样式的Json.您也可以像编程一样以编程方式生成它们,但我发现从文件中加载它们并使用起来要容易得多.如果您想了解有关如何制作皮肤或编辑皮肤等的更多信息,请点击以下链接:皮肤.
现在,回到你得到的例外.这是因为您创建的皮肤没有用于描述各种UI元素的样式的json.在上述异常的情况下,文本字段内的标签没有默认样式.
您可以简单地使用tests文件夹中提供的模板:
将这些文件放在android项目的assets文件夹中.然后你可以用一行代码轻松加载这个皮肤:
Skin uiSkin = new Skin(Gdx.files.internal("uiskin.json"));
Run Code Online (Sandbox Code Playgroud)
这将有缺少信息来制作您的TextField对象,以及一堆其他默认样式:
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: { font: default-font, fontColor: white },
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于您入门.还有许多其他小事情,所以不要害怕查看维基上的Scene2d.UI文章以获取更多信息.
注意:您可以使用gdx-tools
工件来使用默认的UI皮肤开箱即用(对于非常小/简单的应用程序非常有用,用于调试,当您真正急于让UI可见时等).
归档时间: |
|
查看次数: |
40378 次 |
最近记录: |