2016-09-21 2 views
0

현재 Monogame을 사용하여 게임을 진행하고 있으며 크로스 플랫폼 프로젝트 (Windows, Linux 및 Mac에서 실행하고 싶습니다.)에 문제가 있습니다. 입력을 얻는 것. KEY를 눌러 키를 건네면 이벤트가 발생합니다. CHAR가 입력되면 다른 이벤트가 발생합니다. 나는 무엇을 atm하고있다. 내가 메인 클래스라고 엔진 (함께 monogame 제공하는 클래스입니다.) 텍스트 입력을 Microsoft.Xna.Framework GameWindow을 사용하고 있습니다 : 숯불 입력 할 때Monogame의 GameWindow OpenTK/Input을 사용하는 크로스 플랫폼

public static void Initialize(GameWindow window) 
    { 
     window.TextInput += CharEnteredEvent; 
    } 

내가 이벤트에 구독하고이 이벤트는 제기되었지만 Ctrl 또는 다른 키를 누를 때 예상대로되지 않습니다. Microsoft.Xna.Framework의 GameWindow에는이 기능 만 있지만 OpenTK의 GameWindow에는 TextInput, KeyDown, KeyUp 등의 이벤트가 더 있습니다. OpenTK Gamewindow를 사용하면 필요한 모든 것이 있지만 Monogame 크로스 플랫폼은 Microsoft.Xna.Framework를 사용합니다 GameWindow. 어떤 아이디어를 어떻게 OpenTK 게임 창을 사용할 수 있습니다. BTW 모노 게임에서 크로스 플랫폼 프로젝트는 OpenTK와 함께 제공됩니다. 미리 감사드립니다. 긴 질문에 사과드립니다.

답변

0

Keyboard.GetState() API를 사용하여 키보드 상태를 폴링해야합니다. TextInput 이벤트는 텍스트 입력 전용이며 다른 키는 제공하지 않습니다.

MonoGame을 사용할 때 OpenTK를 들여다 보지 않아야합니다. 크로스 플랫폼 프레임 워크 인 MonoGame은 이러한 라이브러리를 추상화하기위한 것입니다. 예를 들어, 곧 나오는 3.6 버전은 오래된 OpenTK 대신 SDL을 사용할 것입니다.