我正在使用 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,但无法接受任何输入。我过去在使用皮肤方面遇到了麻烦,如果没有必要的话我不想使用它。但我不知道是否是我缺少皮肤导致它不起作用,或者是否是其他问题。有人可以向我解释一下如何在文本字段中接受输入,或者我的问题是什么?
我在获取用户的文本输入时也遇到了很多问题。我没有找到使用
TextView
的方法。
如果您想在使用 LibGDX 时获取用户的输入,这里有一个简单的方法:
使用
TextInputListener
。您可以在此页面上阅读教程。看起来不是那么漂亮,但它的功能很好。
如果您想要自定义设计,则不应使用上述方法。当您需要用户输入时,检查是否按下了某个键(每一帧)。如果是这样,请将键入的字符附加到
String
。使用 String
在漂亮的对话框中渲染 BitmapFont
。
我知道我有点晚了,但我有一个类似的问题,当我将视口传递到我的舞台时,我的问题得到了修复。因此,请确保您的舞台附加了视口,因为这可能是错误。
Stage = new Stage('''这里是你的视口''')