2011-01-11 3 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とregisterキーストロークを使用し、spriebatch.DrawString(..)を使用して画面に表示します

関連する問題