XNA / MonoGame的便携式缓冲键盘输入?


11

作为一个初步的解决方案,我目前在C#/ XNA游戏项目中使用Nuclex框架来缓冲键盘输入。可悲的是,nuclex依赖于SlimDX.Directinput.dll,因此据我所知只能在Windows操作系统下使用。但是,我使用MonoGame定位其他平台(Linux,OSX等),因此我正在寻找一种可移植的方式来集成所有平台上的缓冲键盘输入。有没有?


还没有以图书馆的形式存在。当我将gui库移植到monogame时,人们已经在Mac和Linux上做到了这一点,我正在努力促使人们贡献自己的代码。
ClassicThunder

Answers:


4

为此创建SharpInputSystem。它为大多数平台上的键盘和鼠标以及其他一些平台上的GamePad /操纵杆提供了一种便捷的访问方式。完全公开的是,我是作者,但我需要一个与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;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.