2011-01-11 4 views

답변

0

xWinForms과 같은 기존 사용자 인터페이스 라이브러리를 사용하십시오. UI library for XNA 질문에서 더 많은 옵션을 찾을 수 있습니다.

4

XNA를 사용할 때 C#을 사용하고 있습니다. XNA 프레임 워크는 C#을 사용하여 프로그램하는 dll 집합입니다.

입력을받는 방법은 직접 컨트롤을 코딩하거나 기존 라이브러리를 사용할 수 있습니다. 두 옵션 모두 장단점이 있습니다.

우리라는 XNA 포럼에 걸쳐 자주 묻는 질문이 "어떤 GUI 시스템은 XNA 프레임 워크가있다"아마 당신을위한 유용한 읽기 것 ->http://forums.create.msdn.com/forums/t/15274.aspx

0

내가이 일을한다면, 나는 듣지도 않을거야 일부 키는 "Enter"버튼을 누릅니다. 그런 다음 필요한만큼 반복합니다. 그 코드는 다음과 같습니다.

KeyboardState key; 
OldKeyboardState oldKey; 
String input; 
//Puts final input in this 
String finalIn; 
String finalIn2; 
String finalIn3; 

protected override void Update(GameTime gameTime) 
{ 
    key = Keyboard.GetState(); 
    //Do for all acceptable characters 
    if (key.IsKeyDown(Keys.A) && key.IsKeyDown(Keys.RightShift) && oldKey.IsKeyUp(Keys.A) && oldKey.IsKeyUp(Keys.RightShift)) input = input + "A"; 
    else if (key.IsKeyDown(Keys.A) && oldKey.IsKeyUp(Keys.A) input = input + "a"; 
    //Etc. 
    //Finalize input when enter is pressed 
    if(key.IsKeyDown(Keys.Enter) && oldKey.IsKeyUp(Keys.Enter)) 
    { 
     finalIn = input; 
     input = ""; 
    } 
    //Finalize input when enter is pressed for second input 
    if(key.IsKeyDown(Keys.Enter) && oldKey.IsKeyUp(Keys.Enter) && finalIn != "") 
    { 
     finalIn2 = input; 
     input = ""; 
    } 
    //Etc. 
    //At end set oldKey = key, so we have the current one and the old one 
    oldKey = key; 
} 
protected override void Draw(GameTime gameTime) 
{ 
    GraphicsDevice.Clear(Color.CornflowerBlue); 
    //If desired, add in a draw string to show user what is being inputed 
    base.Draw(gameTime); 
} 
0

직접 컨트롤을 구현하는 것이 더 쉽습니다. 문자열 버퍼에 spritebatch 및 키 스트로크를 사용한 다음 spriebatch.DrawString (..)을 사용하여 화면에 표시합니다.

관련 문제