การสร้างฟิลด์ข้อความใน LibGDX

ฉันกำลังทำงานกับเกม 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 แต่ไม่สามารถรับอินพุตใดๆ ได้ ฉันเคยมีปัญหากับ Skins ในอดีต และไม่ต้องการใช้หากไม่จำเป็น แต่ฉันไม่รู้ว่าเป็นเพราะขาดสกินหรือเปล่า นั่นเป็นเหตุผลว่าทำไมมันใช้งานไม่ได้หรือเป็นปัญหาอื่นหรือไม่ ใครช่วยอธิบายวิธีป้อนข้อมูลใน TextField ให้ฉันฟังหน่อยได้ไหม หรือปัญหาของฉันคืออะไร


person A.J. Kolbasowski    schedule 26.04.2018    source แหล่งที่มา
comment
คุณได้เปิดใช้งานการแสดงผลการแก้ไขข้อบกพร่องบนตารางของคุณ (และลูก ๆ ) เพื่อดูว่ากรอบขอบเขตของช่องข้อความเป็นไปตามที่คาดไว้หรือไม่   -  person Thomas    schedule 26.04.2018
comment
ฉันลองใช้รหัสของคุณแล้วและมันพิมพ์เฉพาะ 'ข้อความ' เท่านั้น อย่างไรก็ตาม คุณสามารถคลิกข้อความนั้นและเปลี่ยนด้วยแป้นพิมพ์ได้ เพื่อให้การประเมินของคุณว่าสไตล์นั้นเป็นตัวการที่ถูกต้อง   -  person DHa    schedule 26.04.2018


คำตอบ (1)


ฉันยังประสบปัญหาเล็กน้อยในการป้อนข้อความจากผู้ใช้ ฉันไม่พบวิธีใช้ TextView หากคุณต้องการรับอินพุตจากผู้ใช้ขณะใช้ LibGDX มีวิธีง่ายๆ ดังต่อไปนี้:

ใช้ TextInputListener คุณสามารถอ่านบทแนะนำได้ที่หน้านี้ มันไม่ได้ดูสวยงามขนาดนั้น แต่ก็ทำงานได้ดี

หากคุณต้องการให้มีการออกแบบที่กำหนดเอง คุณไม่ควรใช้วิธีการข้างต้น เมื่อคุณต้องการอินพุตจากผู้ใช้ ให้ตรวจสอบว่ามีการกดปุ่มหรือไม่ (ทุกเฟรม) หากเป็นเช่นนั้น ให้เพิ่มอักขระที่พิมพ์ต่อท้าย String แสดงผล String ในกล่องโต้ตอบที่ดีโดยใช้ BitmapFont

person TVASO    schedule 16.05.2018