XNA / MonoGame için taşınabilir tamponlu klavye girişi?


11

Bir ön çözüm olarak, şu anda tamponlu klavye girişi için bir C # / XNA oyun projesinde Nuclex çerçevesini kullanıyorum . Ne yazık ki, nuclex SlimDX.Directinput.dll güveniyor ve bu nedenle benim bilgim sadece Windows işletim sistemleri altında kullanılabilir. Ancak, diğer platformları (Linux, OSX, vb.) Hedeflemek için MonoGame kullanıyorum ve bu nedenle tüm platformlar arasında arabellek klavye girişi entegre etmek için taşınabilir bir yol arıyorum. Var mı?


Henüz kütüphane olarak mevcut değil. Gui kütüphanemi monogame'ye taşırken insanlar Mac ve Linux için bunu yaptılar ve insanların kodlarına katkıda bulunmalarını sağlamaya çalışıyorum.
ClassicThunder

Yanıtlar:


4

SharpInputSystem bu amaç için oluşturuldu. Çoğu platformda Klavye ve Fareye, birkaç platformda GamePad / Joystick'e taşınabilir bir yol sağlar. Tam açıklama olarak ben yazarım, ancak Axiom ile sağladığım örnekler için benzer bir kütüphaneye ihtiyacım vardı.

MonoGame derlemelerini düzgün bir şekilde yüklemek için değiştirilmesi gerekebilir, şu anda güçlü bir ada bağımlılığı önlemek için Xna kitaplıklarını dinamik olarak yüklüyorum. İsterseniz bu değişiklikleri yapmaya bakabilirim ya da hissediyorsanız, çalıştıktan sonra bir yama gönderin.


1
İyi çaba ama gerçek bir cevap değil, çünkü önemli bir iş olmadan bu noktada kullanılamaz.
ashes999

0

Düzgün taşınabilir olmasa da (sadece Windows ve Linux için). MonoGame, uygun şekilde arabelleğe alınmış klavye girişini kullanan metin girişi için bir olaya sahiptir.

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;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.