Я знаю, как рисовать текст в XNA, но я реализую дизайнер уровня, который потребует от пользователя ввода текста в пользовательский интерфейс. У меня была небольшая ошибка в Google, но не удалось найти, как реализовать редактируемое текстовое поле. Для этого нет ничего в этом?XNA Редактируемое текстовое поле
ответ
вы можете использовать какое-то графический интерфейс библиотеки как http://nuclexframework.codeplex.com
или использование WinForms http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1
Вам нужно будет создать свою собственную область, в которую пользователь может щелкнуть. Когда они это делают, вам нужно захватить нажатия клавиш.
Вы считаете, что используете редактор уровней для вашей игры embedding XNA in WinForms?
Ха-ха. Я сказал, что шесть месяцев назад ты сказал. Редактор уровней близок к завершению, это буквально одно из единственных возможных полей, которые нуждаются в редактировании с текстом. Grrrr – DrLazer 2010-12-17 16:45:51
Чтобы идти вместе с некоторыми из других предложений по этой теме, вы можете также использовать WPF и просто оказать XNA для пользовательского элемента управления в xaml. Там отличный пост в блоге Ник Gravelyn о том, как сделать это здесь:
http://blogs.msdn.com/b/nicgrave/archive/2010/07/25/rendering-with-xna-framework-4-0-inside-of-a-wpf-application.aspx
Большая часть о том, что вы можете использовать такие методы, как MVVM то, чтобы написать свой редактор :-)
Если нужно просто простой способ ввести небольшое количество текста создать класс kbHandler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;
namespace CodeName
{
public class KbHandler
{
private Keys[] lastPressedKeys;
public string tekst = "";
public KbHandler()
{
lastPressedKeys = new Keys[0];
}
public void Update()
{
KeyboardState kbState = Keyboard.GetState();
Keys[] pressedKeys = kbState.GetPressedKeys();
//check if any of the previous update's keys are no longer pressed
foreach (Keys key in lastPressedKeys)
{
if (!pressedKeys.Contains(key))
OnKeyUp(key);
}
//check if the currently pressed keys were already pressed
foreach (Keys key in pressedKeys)
{
if (!lastPressedKeys.Contains(key))
OnKeyDown(key);
}
//save the currently pressed keys so we can compare on the next update
lastPressedKeys = pressedKeys;
}
//Create your own
private void OnKeyDown(Keys key)
{
switch (key)
{
case Keys.D0:
tekst += "0";
break;
case Keys.D1:
tekst += "1";
break;
case Keys.D2:
tekst += "2";
break;
case Keys.D3:
tekst += "3";
break;
case Keys.D4:
tekst += "4";
break;
case Keys.D5:
tekst += "5";
break;
case Keys.D6:
tekst += "6";
break;
case Keys.D7:
tekst += "7";
break;
case Keys.D8:
tekst += "8";
break;
case Keys.D9:
tekst += "9";
break;
case Keys.NumPad0:
tekst += "0";
break;
case Keys.NumPad1:
tekst += "1";
break;
case Keys.NumPad2:
tekst += "2";
break;
case Keys.NumPad3:
tekst += "3";
break;
case Keys.NumPad4:
tekst += "4";
break;
case Keys.NumPad5:
tekst += "5";
break;
case Keys.NumPad6:
tekst += "6";
break;
case Keys.NumPad7:
tekst += "7";
break;
case Keys.NumPad8:
tekst += "8";
break;
case Keys.NumPad9:
tekst += "9";
break;
case Keys.OemPeriod:
tekst += ".";
break;
case Keys.Back:
if (tekst.Length > 0)
{
tekst = tekst.Remove(tekst.Length - 1, 1);
}
break;
}
}
private void OnKeyUp(Keys key)
{
//do stuff
}
}
}
И в цикле обновления
kb.Update();
string text = kb.tekst;
Это очень простой и грязный способ сделать это
- 1. Tapestry5 редактируемое текстовое поле
- 2. Редактируемое текстовое поле
- 3. Редактируемое текстовое поле в Winforms
- 4. Как создать редактируемое текстовое поле?
- 5. Редактируемое текстовое поле в UITableViewCell
- 6. Редактируемое текстовое поле в jQuery
- 7. SWT редактируемое текстовое поле на холсте
- 8. Отключено текстовое поле, редактируемое в IE8
- 9. редактируемое текстовое поле в Webix combobox
- 10. Как добавить редактируемое текстовое поле в JPanel
- 11. Не редактируемое текстовое поле в wxPython
- 12. Редактируемое текстовое поле на клике, angular.js
- 13. Inspect не распознает редактируемое текстовое поле win32
- 14. Текстовое поле в C# XNA Game
- 15. Как создать редактируемое текстовое поле в быстром приложении оболочки
- 16. Как сделать редактируемое текстовое поле, расположенное перед ползунком.?
- 17. Функция перетаскивания с Dropzone и хотите добавить редактируемое текстовое поле
- 18. Как разместить редактируемое текстовое поле в сетке с помощью dojo
- 19. Как сделать интерактивное и редактируемое текстовое поле в android?
- 20. Читать только текстовое поле, редактируемое через вставленный javascript?
- 21. ADF Таблица Редактируемое поле №
- 22. Добавить редактируемое поле в список
- 23. Проверить редактируемое поле редактирования jqgrid
- 24. «Одноразовый» Редактируемое поле Django Admin
- 25. Sonata bundle редактируемое поле даты
- 26. Rails: редактируемое/редактируемое поле в зависимости от разрешений пользователя
- 27. Как реализовать разрешаемое редактируемое поле в Angular?
- 28. Редактируемое раскрытие?
- 29. Почему мое редактируемое текстовое редактирование не применяется?
- 30. Я хочу вставить значение базы данных в виде сетки редактируемое текстовое поле, из которого я могу обновить это текстовое поле
Я, наверное, должен был упомянуть, что проектировщик уровня почти закончен. Просто нужен простой способ добавления редактируемого текстового поля :( – DrLazer 2010-12-17 16:48:01