Портативний вхідний клавіатурний вхід для XNA / MonoGame?


11

В якості попереднього рішення я в даний час використовую рамки Nuclex в ігровому проекті C # / XNA для введення буферизованої клавіатури. На жаль, nuclex покладається на SlimDX.Directinput.dll, і тому, наскільки мені відомо, його можна використовувати тільки в ОС Windows. Однак я використовую MonoGame для націлювання на інші платформи (Linux, OSX тощо), і тому шукаю портативний спосіб інтегрувати вбудовану клавіатурну інформацію на всіх платформах. Чи є?


Ще не існує як бібліотека. Люди зробили це для Mac та Linux, коли пересилали мою бібліотеку gui до моногами, і я намагаюся змусити людей внести свій код.
ClassicThunder

Відповіді:


4

Для цієї точної мети була створена система SharpInputSystem . Він забезпечує портативний спосіб доступу до клавіатури та миші на більшості платформ та GamePad / Joystick на кількох інших. В повному розкритті я є автором, але мені потрібна була схожа бібліотека для зразків, які я надаю з Аксіомою.

Можливо, потрібно буде модифіковано для належного завантаження збірок 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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.