Создание TextField в LibGDX - PullRequest
0 голосов
/ 26 апреля 2018

Я работаю над игрой для Android, использующей LibGDX, и пытаюсь сделать 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 создается, но не может принимать какие-либо входные данные. В прошлом у меня были проблемы со скинами, и я не хотел использовать их, если бы не было необходимости. Но я не знаю, является ли это моей нехваткой скинов, что является причиной, почему это не работает, или это какая-то другая проблема. Может кто-нибудь объяснить мне, как принять ввод в TextField, или в чем моя проблема?

1 Ответ

0 голосов
/ 16 мая 2018

У меня также было немало проблем с получением текста от пользователей. Я не нашел способ использовать TextView. Если вы хотите получить информацию от пользователя при использовании LibGDX, вот простой способ сделать это:

Используйте TextInputListener. Вы можете прочитать учебник на этой странице . Это не так красиво выглядит, но отлично справляется с работой.

Если вы хотите иметь индивидуальный дизайн, вы не должны использовать метод выше. Когда вы хотите, чтобы ввод от пользователя, проверьте, нажата ли клавиша (каждый кадр). Если это так, добавьте напечатанный символ к String. Визуализируйте String в хорошем диалоге, используя BitmapFont.

...