在 LibGDX 中创建文本字段

问题描述 投票:0回答:2

我正在使用 LibGDX 开发一款 Android 游戏,并尝试制作一个 TextField 来输入玩家的名字。这是我到目前为止所拥有的:

TextField.TextFieldStyle style = new TextField.TextFieldStyle();
    style.font = new BitmapFont();
    style.fontColor = Color.CHARTREUSE;

    TextField field = new TextField("", style);
    field.setText("Test");
    field.setWidth(150);

然后我创建了一个表,并向其中添加了 TextField。

table.add(field).expandX().padTop(10);

    stage.addActor(table);

    Gdx.input.setInputProcessor(stage);

这就是我的渲染方法中的内容:

 Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    stage.draw();
    stage.act();

唯一出现的是“Test”,下面什么也没有。因此正在创建 TextField,但无法接受任何输入。我过去在使用皮肤方面遇到了麻烦,如果没有必要的话我不想使用它。但我不知道是否是我缺少皮肤导致它不起作用,或者是否是其他问题。有人可以向我解释一下如何在文本字段中接受输入,或者我的问题是什么?

java libgdx textfield
2个回答
1
投票

我在获取用户的文本输入时也遇到了很多问题。我没有找到使用

TextView
的方法。 如果您想在使用 LibGDX 时获取用户的输入,这里有一个简单的方法:

使用

TextInputListener
。您可以在此页面上阅读教程。看起来不是那么漂亮,但它的功能很好。

如果您想要自定义设计,则不应使用上述方法。当您需要用户输入时,检查是否按下了某个键(每一帧)。如果是这样,请将键入的字符附加到

String
。使用
String
在漂亮的对话框中渲染
BitmapFont


0
投票

我知道我有点晚了,但我有一个类似的问题,当我将视口传递到我的舞台时,我的问题得到了修复。因此,请确保您的舞台附加了视口,因为这可能是错误。

Stage = new Stage('''这里是你的视口''')

© www.soinside.com 2019 - 2024. All rights reserved.