我在xna制作游戏,现在我需要输入一些像姓名和性别的信息。如果我使用C#但会更容易,但我不知道如何在此处执行此操作。请尽快帮助如何在xna中像用户名和性别一样输入用户输入?
1
A
回答
0
使用现有的用户界面库,如xWinForms。您可以在UI library for XNA问题中找到更多选项。
4
当您使用XNA时,您正在使用C#。 XNA框架只是您使用C#编程的一组dll。
至于输入,你可以编码自己的控件或使用一些现有的库。两种选择都有其优点和缺点。
我们在有一个FAQ上称为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(..)在屏幕上显示它(...)
相关问题
- 1. C#XNA - 用户输入
- 2. 如何让用户输入用户名?
- 3. 从用户输入中识别名字
- 4. 如何在用户输入时更改输入的类别?
- 5. 如何在这里输入用户名?
- 6. 用户输入和输出
- 7. 用户输入类别
- 8. 如何在用户输入中获得一些价值输入
- 9. 在Java中输入用户输入
- 10. 输入和用户输入验证
- 11. 名称的用户输入
- 12. 用户如何输入文件名?
- 13. 用户输入
- 14. 用户输入
- 15. 用户输入
- 16. 用户输入
- 17. 用户输入
- 18. 用户输入
- 19. 用户输入
- 20. 用户输入
- 21. 在网址中输入用户名
- 22. 如何根据用户的输入使用别名方法
- 23. 如何问用户输入
- 24. 如何在脚本中输入密码和用户名
- 25. JOptionPane输入用户名和密码
- 26. 输入数据(用户名和密码)
- 27. 检查用户名和密码输入++
- 28. 如何在输入框中保持用户输入? [HTML/AngularJS]
- 29. 如何找出用户在文本输入中按下“输入”?
- 30. Rails:如何读取用户在text_field_tag输入中输入的值?