Tragbare gepufferte Tastatureingabe für XNA / MonoGame?

11

Als vorläufige Lösung verwende ich derzeit das Nuclex-Framework in einem C # / XNA-Spielprojekt für gepufferte Tastatureingaben. Leider stützt sich nuclex auf SlimDX.Directinput.dll und kann daher meines Wissens nur unter Windows-Betriebssystemen verwendet werden. Ich verwende MonoGame jedoch, um auf andere Plattformen (Linux, OSX usw.) abzuzielen, und suche daher nach einer tragbaren Möglichkeit, gepufferte Tastatureingaben auf allen Plattformen zu integrieren. Gibt es irgendwelche?

ares_games
quelle
Existiert noch nicht als Bibliothek. Die Leute haben es für Mac und Linux gemacht, als sie meine GUI-Bibliothek auf Monogame portiert haben, und ich versuche, die Leute dazu zu bringen, ihren Code beizutragen.
ClassicThunder

Antworten:

4

SharpInputSystem wurde genau für diesen Zweck erstellt. Es bietet auf den meisten Plattformen eine tragbare Möglichkeit, auf Tastatur und Maus und auf einigen anderen Plattformen auf GamePad / Joystick zuzugreifen. Bei vollständiger Offenlegung bin ich der Autor, aber ich brauchte eine ähnliche Bibliothek für die Beispiele, die ich mit Axiom zur Verfügung stelle.

Es muss möglicherweise geändert werden, um die MonoGame-Assemblys ordnungsgemäß zu laden. Derzeit lade ich die Xna-Bibliotheken dynamisch, um eine Abhängigkeit von einem starken Namen zu vermeiden. Ich kann diese Änderungen entweder prüfen, wenn Sie möchten, oder wenn Sie Lust dazu haben, senden Sie einen Patch, sobald Sie ihn zum Laufen gebracht haben.

Borrillis
quelle
1
Gute Mühe, aber keine echte Antwort, da es zu diesem Zeitpunkt ohne nennenswerte Arbeit nicht verwendbar ist.
Asche999
0

Obwohl nicht richtig portabel (nur für Windows und Linux). MonoGame verfügt über ein Ereignis für die Texteingabe, das ordnungsgemäß gepufferte Tastatureingaben verwendet.

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;
ClassicThunder
quelle