我已经完成了nice tutorial,创建了一个简单的libgdx游戏,在雨桶中捕捉雨滴,我通过使用texture atlas加载图像创建了一个简单的棋盘游戏应用程序.但是,scene2d听起来像是一个更好的方法来控制移动的棋子棋盘游戏应用程序,以及任何按钮和菜单.
解决方法
> Atlaspack File
> Json File
> Atlaspack Image
> Font File
在this question中有更多细节,我发现我必须将文件移动到资产的子目录中以避免HTML版本中的错误. (如果我将文件保留在assets文件夹中,我会看到一条错误消息,例如“GwtApplication:exception:读取文件数据/ uiskin.json时出错.”)
我发布了一个显示单个按钮的complete example,有趣的代码全部在game class中.示例非常简单,您只需要两个成员变量来保存场景和按钮.
private Stage stage; private TextButton button;
要创建外观,只需加载数据文件即可.
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
将按钮连接到舞台上.
stage = new Stage(); button = new TextButton("Click Me!",skin); stage.addActor(button);
将监听器连接到按钮,并注册阶段以接收事件.
button.addListener(new ClickListener() { @Override public void clicked(InputEvent event,float x,float y) { button.setText("Clicked!"); } }); Gdx.input.setInputProcessor(stage);
render()方法基本上是对stage.draw()的调用.
Gdx.gl.glClearColor(1,1,1); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); stage.act(Math.min(Gdx.graphics.getDeltaTime(),1 / 30f)); stage.draw();
然后你只需要在调整大小时布局屏幕.
button.setPosition( (width-button.getWidth())/2,(height-button.getHeight())/2);
如果您的屏幕更复杂,请考虑使用Table.
如果要使用其他字体,可以使用Hiero生成字体文件和图像文件.完成后,您必须使用新的字体图像并使用TexturePacker将其与其他skin assets重新打包.
原文地址:https://www.jb51.cc/android/310148.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。