我想用libgdx显示许多文本输入字段(例如 名称,姓氏,电子邮件)用户必须输入这些信息。 我已经尝试过这个https://github.com/libgdx/libgdx/wiki/Simple-text-input,但在我的情况下它不是最佳选择,因为我希望它包含在主窗口中,而不是打开一个新的小的,因为它只显示一个文本输入字段。 此外,我希望能够使这些字段出现在主窗口的随机位置。
答案 0 :(得分:0)
您可以根据需要使用scene2d小部件,创建标签和TextField并添加到舞台。您可以使用表格来安排演员。
public class Splash extends Game {
private Stage stage;
@Override
public void create() {
ExtendViewport extendViewport=new ExtendViewport(700,1200,new OrthographicCamera());
stage=new Stage(extendViewport);
Skin skin=new Skin(Gdx.files.internal("skin/uiskin.json"));
skin.get("font-label", BitmapFont.class).getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
Table table=new Table();
table.defaults().pad(10);
table.setFillParent(true);
Label userName=new Label("USER ID : ",skin);
TextField userNameField=new TextField("",skin);
Label name =new Label("NAME : ",skin);
TextField nameField=new TextField("",skin);
Label email=new Label("EMAIL : ",skin);
TextField emailField=new TextField("",skin);
table.add(userName);
table.add(userNameField).width(300);
table.row();
table.add(name).left();
table.add(nameField).width(300);
table.row();
table.add(email).left();
table.add(emailField).width(300);
stage.addActor(table);
Gdx.input.setInputProcessor(stage);
}
@Override
public void render() {
super.render();
Gdx.gl.glClearColor(0,1,1,1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.draw();
stage.act();
}
@Override
public void resize(int width, int height) {
super.resize(width,height);
stage.getViewport().update(width,height);
}
@Override
public void dispose() {
stage.dispose();
}
输出看起来: