Портативный буферный ввод с клавиатуры для XNA / MonoGame?


11

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


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