gpt4 book ai didi

android - 用于 libgdx 的用户界面 API

转载 作者:可可西里 更新时间:2023-11-01 18:54:55 24 4
gpt4 key购买 nike

此处为 Android 和 libgdx 菜鸟。

有人知道最近为 libgdx 发布的 UI API 吗?请参阅此处的博客文章:http://www.badlogicgames.com/wordpress/?p=2058

我想创建一个基本的菜单系统,我想知道这个 UI API 是否会让它变得更容易。

最佳答案

已更新以反射(reflect)对 LibGDX 的更改

我处于类似的位置,以下代码为我创建了一个基本菜单(按钮容器)。该代码不会按原样运行,因为它使用了我的一些类,但真正重要的是 create 方法的内容。这将创建一个居中的标题,然后是居中容器中的一些按钮,然后是左下角的 fps 标签和右下角的图像。主题文件和一些图像来自 LibGDX tests assets .

我已将其用于 JOGL、LWJGL 和 android 应用程序类。我已经在 Droid 2 上运行它,并让它像在我的桌面上一样运行。希望这能让您入门。

public class MenuScreen extends Screen{
private Stage ui;
private Table window;
@Override
public void create(final Game game) {
super.create(game);
TextureRegion image = new TextureRegion(new Texture(Gdx.files.internal(Art.badlogicSmall)));
Label fps = new Label("fps: ", Art.sSkin.getStyle(LabelStyle.class),"fps");
ui = new Stage(Gdx.graphics.getWidth(),Gdx.graphics.getHeight(), true);
Gdx.input.setInputProcessor(ui);
window = new Table("window");
window.width = ui.width();
window.height = ui.height();
window.x = 0;
window.y = 0;
window.debug();
Label title = new Label("Title",Art.sSkin.getStyle(LabelStyle.class),"title");
Button newGame = new Button("New Game",Art.sSkin.getStyle(ButtonStyle.class),"new");
newGame.setClickListener(new ClickListener() {
@Override
public void click(Actor actor) {
game.setScreen(GameScreen.class);
}
});
Button optionMenu = new Button("Option",Art.sSkin.getStyle(ButtonStyle.class),"Options");
Button helpMenu = new Button("Help",Art.sSkin.getStyle(ButtonStyle.class),"Help");
Image libgdx = new Image("libgdx", image);
window.row().fill(false,false).expand(true,false).padTop(50).padBottom(50);
window.add(title);
Table container = new Table("menu");
container.row().fill(true, true).expand(true, true).pad(10, 0, 10, 0);
container.add(newGame);
container.row().fill(true, true).expand(true, true).pad(10, 0, 10, 0);
container.add(optionMenu);
container.row().fill(true, true).expand(true, true).pad(10, 0, 10, 0);
container.add(helpMenu);
window.row().fill(0.5f,1f).expand(true,false);
window.add(container);
Table extras = new Table("extras");
extras.row().fill(false,false).expand(true,true);
extras.add(fps).left().center().pad(0,25,25,0);
extras.add(libgdx).right().center().pad(0,0,25,25);
window.row().fill(true,false).expand(true,true);
window.add(extras).bottom();
ui.addActor(window);
}

@Override
public void render(float arg0) {
Gdx.gl.glClearColor(0.2f, 0.2f, 0.2f, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
((Label)ui.findActor("fps")).setText("fps: " + Gdx.graphics.getFramesPerSecond());
ui.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
ui.draw();
Table.drawDebug(ui);
}
@Override
public void resize(int width, int height) {
ui.setViewport(width, height, true);
Log.d("Resize: "+width+", "+height);
}

关于android - 用于 libgdx 的用户界面 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com