【问题标题】:Creating a TextField in LibGDX在 LibGDX 中创建一个 TextField
【发布时间】:2018-04-26 12:15:30
【问题描述】:

我正在使用 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();

唯一出现的是“测试”,下面什么都没有。所以 TextField 正在创建,但不能接受任何输入。过去我在使用 Skins 时遇到过问题,如果没有必要,我不想使用其中的一个。但我不知道是我缺少皮肤是它不起作用的原因,还是其他问题。有人可以向我解释一下如何在 TextField 中接受输入,或者我的问题是什么?

【问题讨论】:

  • 您是否在您的表(和子表)上启用了调试渲染以查看文本字段的边界框是否符合预期?
  • 我尝试了您的代码,它确实只打印“文本”,但是可以单击该文本并使用键盘更改它,因此您对样式是罪魁祸首的评估似乎是正确的。

标签: java libgdx textfield


【解决方案1】:

我在从用户那里获取文本输入时也遇到了很多问题。我没有找到使用TextView 的方法。 如果您想在使用 LibGDX 时从用户那里获得输入,这里有一个简单的方法:

使用TextInputListener。您可以阅读this page 上的教程。它看起来不是那么漂亮,但它做得很好。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 2014-02-24
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多