อินพุตคีย์บอร์ดบัฟเฟอร์แบบพกพาสำหรับ XNA / MonoGame?


11

เป็นวิธีแก้ปัญหาเบื้องต้นฉันกำลังใช้เฟรมเวิร์ก Nuclexในโครงการเกม C # / XNA สำหรับอินพุตคีย์บอร์ดบัฟเฟอร์ น่าเศร้าที่ nuclex พึ่งพา SlimDX.Directinput.dll ดังนั้นความรู้ของฉันจึงสามารถใช้ได้เฉพาะในระบบปฏิบัติการ Windows เท่านั้น อย่างไรก็ตามฉันใช้MonoGameเพื่อกำหนดเป้าหมายแพลตฟอร์มอื่น ๆ (Linux, OSX และอื่น ๆ ) และดังนั้นฉันจึงกำลังมองหาวิธีการพกพาในการรวมแป้นพิมพ์บัฟเฟอร์ที่ทำให้เกิดข้อผิดพลาดในทุกแพลตฟอร์ม มีผู้ใด?


ยังไม่ได้เป็นห้องสมุด ผู้คนทำเพื่อ Mac และ Linux เมื่อย้าย gui library ของฉันไปที่ monogame และฉันพยายามที่จะให้คนอื่นช่วยเขียนโค้ดของพวกเขา
ClassicThunder

คำตอบ:


4

SharpInputSystemถูกสร้างขึ้นเพื่อวัตถุประสงค์ที่แน่นอนนี้ มันเป็นวิธีที่สะดวกในการเข้าถึงคีย์บอร์ดและเมาส์บนแพลตฟอร์มและ GamePad / Joystick ในการเปิดเผยอย่างเต็มรูปแบบฉันเป็นผู้เขียน แต่ฉันต้องการห้องสมุดที่คล้ายกันสำหรับตัวอย่างที่ฉันให้ไว้กับ Axiom

อาจต้องมีการแก้ไขเพื่อโหลดชุดประกอบ MonoGame อย่างถูกต้องขณะนี้ฉันกำลังโหลดไลบรารี Xna แบบไดนามิกเพื่อหลีกเลี่ยงการพึ่งพาชื่อที่รัดกุม ฉันสามารถดูการเปลี่ยนแปลงเหล่านั้นหากคุณต้องการหรือถ้าคุณรู้สึกถึงมันให้ส่งแพทช์เมื่อคุณได้ทำงาน


1
ความพยายามที่ดี แต่ไม่ใช่คำตอบที่แท้จริงเนื่องจากไม่สามารถใช้งานได้ในตอนนี้หากไม่มีงานที่สำคัญ
ashes999

0

ในขณะที่พกพาไม่ถูกต้อง (สำหรับ Windows และ Linux เท่านั้น) MonoGame มีเหตุการณ์สำหรับการป้อนข้อความที่ใช้การป้อนคีย์บอร์ดอย่างถูกต้อง

MonoGame.Framework / GameWindow.cs

    /// Use this event to retrieve text for objects like textbox's.
    /// This event is not raised by noncharacter keys.
    /// This event also supports key repeat.
    /// For more information this event is based off:
    /// http://msdn.microsoft.com/en-AU/library/system.windows.forms.control.keypress.aspx
    /// </summary>
    /// <remarks>
    /// This event is only supported on the Windows DirectX, Windows OpenGL and Linux platforms.
    /// </remarks>
    public event EventHandler<TextInputEventArgs> TextInput;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.