Membuat TextField di LibGDX

Saya sedang mengerjakan game Android menggunakan LibGDX dan mencoba membuat TextField untuk mengambil nama pemain. Inilah yang saya miliki sejauh ini:

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);

Saya kemudian membuat tabel, dan menambahkan TextField ke dalamnya.

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

    stage.addActor(table);

    Gdx.input.setInputProcessor(stage);

Dan inilah yang ada dalam metode render saya:

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

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

Satu-satunya hal yang muncul adalah "Tes", tanpa apa pun di bawahnya. Jadi TextField sedang dibuat, tetapi tidak dapat menerima masukan apa pun. Saya pernah mengalami masalah dengan Skin di masa lalu, dan tidak ingin menggunakannya jika tidak perlu. Tapi saya tidak tahu apakah karena kekurangan Skin saya yang menyebabkannya tidak berfungsi, atau karena masalah lain. Bisakah seseorang menjelaskan kepada saya cara menerima input di TextField, atau apa masalah saya?


person A.J. Kolbasowski    schedule 26.04.2018    source sumber
comment
Apakah Anda mengaktifkan rendering debug pada tabel Anda (dan anak-anak) untuk melihat apakah kotak pembatas bidang teks seperti yang diharapkan?   -  person Thomas    schedule 26.04.2018
comment
Saya mencoba kode Anda dan memang hanya mencetak 'Teks', namun teks itu dapat diklik dan diubah dengan keyboard sehingga penilaian Anda bahwa gaya adalah penyebabnya tampaknya benar.   -  person DHa    schedule 26.04.2018


Jawaban (1)


Saya juga mengalami beberapa masalah dalam mendapatkan masukan teks dari pengguna. Saya tidak menemukan cara untuk menggunakan TextView. Jika Anda ingin mendapatkan masukan dari pengguna saat menggunakan LibGDX, berikut cara mudahnya:

Gunakan TextInputListener. Anda dapat membaca tutorialnya di halaman ini. Tampilannya tidak begitu indah, tetapi berfungsi dengan baik.

Jika Anda ingin memiliki desain custom, sebaiknya jangan menggunakan cara di atas. Bila Anda menginginkan masukan dari pengguna, periksa apakah ada tombol yang ditekan (setiap frame). Jika demikian, tambahkan karakter yang diketik ke String. Render String dalam dialog yang bagus menggunakan BitmapFont.

person TVASO    schedule 16.05.2018