Как принять пользовательский ввод, как имя и пол в xna? - PullRequest
1 голос
/ 11 января 2011

Я делаю игру в xna, и теперь мне нужно принять некоторые данные, такие как имя и пол.Было бы намного проще, если бы я использовал C #, но я не знаю, как это сделать здесь.

Ответы [ 4 ]

4 голосов
/ 12 января 2011

Вы используете C #, когда используете XNA. Платформа XNA - это просто набор библиотек, которые вы программируете против использования C #.

Что касается ввода, вы можете либо кодировать свои собственные элементы управления, либо использовать некоторые существующие библиотеки. Оба варианта имеют свои плюсы и минусы.

У нас есть часто задаваемые вопросы на форумах XNA под названием «Какие системы графического интерфейса существуют для платформы XNA», которые, вероятно, будут полезны для вас -> http://forums.create.msdn.com/forums/t/15274.aspx

0 голосов
/ 13 апреля 2014

Проще реализовать свои собственные контроли.Используйте spritebatch и зарегистрируйте нажатия клавиш в строковом буфере, а затем отобразите его на экране с помощью spriebatch.DrawString (..)

0 голосов
/ 18 ноября 2013

Если бы я делал это, я бы прослушал несколько клавиш, а затем кнопки «Ввод».Затем я повторю это столько раз, сколько мне нужно.Код для этого ниже.

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 голосов
/ 12 января 2011

Использовать существующую библиотеку пользовательского интерфейса, например xWinForms . Дополнительные параметры можно найти в библиотеке UI для вопроса XNA .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...