Don*_*kby 19
要加载外观,可以从libgdx测试项目中使用的示例外观文件开始.
在这个问题中有更多细节,我发现我必须将文件移动到资产的子目录中以避免HTML版本中的错误.(如果我将文件保留在assets文件夹中,我会看到一条错误消息,例如"GwtApplication:exception:读取文件数据/ uiskin.json时出错.")
我发布了一个显示单个按钮的完整示例,而有趣的代码全部都在游戏类中.示例非常简单,您只需要两个成员变量来保存场景和按钮.
private Stage stage;
private TextButton button;
Run Code Online (Sandbox Code Playgroud)
要创建外观,只需加载数据文件即可.
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
Run Code Online (Sandbox Code Playgroud)
将按钮连接到舞台上.
stage = new Stage();
button = new TextButton("Click Me!", skin);
stage.addActor(button);
Run Code Online (Sandbox Code Playgroud)
将监听器连接到按钮,并注册阶段以接收事件.
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
button.setText("Clicked!");
}
});
Gdx.input.setInputProcessor(stage);
Run Code Online (Sandbox Code Playgroud)
该render()
方法基本上是一个调用stage.draw()
.
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
stage.draw();
Run Code Online (Sandbox Code Playgroud)
然后你只需要在调整大小时布局屏幕.
button.setPosition(
(width-button.getWidth())/2,
(height-button.getHeight())/2);
Run Code Online (Sandbox Code Playgroud)
如果您的屏幕更复杂,请考虑使用表格.
如果要使用其他字体,可以使用Hiero生成字体文件和图像文件.完成之后,您必须使用新的字体图像并使用TexturePacker将其与其他皮肤资源重新打包.