Entrada de teclado em buffer portátil para XNA / MonoGame?


11

Como solução preliminar, atualmente estou usando a estrutura Nuclex em um projeto de jogo em C # / XNA para entrada de teclado em buffer. Infelizmente, o nuclex depende do SlimDX.Directinput.dll e, portanto, que eu saiba, só pode ser usado em sistemas operacionais Windows. No entanto, eu uso o MonoGame para direcionar outras plataformas (Linux, OSX, etc.) e, portanto, estou procurando uma maneira portátil de integrar a entrada de teclado em buffer em todas as plataformas. Existe algum?


Ainda não existe como biblioteca. As pessoas fizeram isso para Mac e Linux ao portar minha biblioteca de GUI para o monogame e estou tentando fazer com que as pessoas contribuam com seu código.
precisa

Respostas:


4

O SharpInputSystem foi criado para esse propósito exato. Ele fornece uma maneira portátil de acessar o teclado e o mouse na maioria das plataformas e o GamePad / Joystick em algumas outras. Na divulgação completa, sou o autor, mas precisava de uma biblioteca semelhante para as amostras que forneço com o Axiom.

Pode ser necessário modificá-lo para carregar os assemblies MonoGame corretamente. No momento, estou carregando as bibliotecas Xna dinamicamente para evitar uma dependência de um nome forte. Posso investigar essas alterações, se você quiser ou se quiser, enviar um patch assim que estiver funcionando.


1
Bom esforço, mas não uma resposta real, pois não é utilizável neste momento sem um trabalho significativo.
ashes999

0

Embora não seja adequadamente portátil (é apenas para Windows e Linux). O MonoGame possui um evento para entrada de texto que usa a entrada do teclado adequadamente armazenada em buffer.

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;
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.