Я знаю, что Шон Джеймс уже сказал это . А если серьезно, Visual Studio (в частности, инструменты отладки) является потрясающим для этого.
Я не очень часто использую C ++ в эти дни, поэтому я не уверен, насколько хорошо они там применяются. Но для C # (в том числе в C # Express) у вас есть:
И это может взорвать ваш разум (он взорвал мой, когда я узнал об этом):
Немедленное окно на самом деле довольно сложно найти (оно находится в меню Debug / Windows).
Единственный существенный недостаток использования отладчика Visual C # заключается в том, что он не любит изменение const
значений. Поэтому я обычно делаю свои игровые ценности, static
пока я их настраиваю.
(Также: очень помогает наличие двух мониторов.)
Теперь я должен признать, что приведенный выше метод включает в себя приостановку вашего приложения - что может быть неудовлетворительно медленным для некоторых особенно неприятных вещей.
В этих редких случаях я делаю (в XNA) просто взлом небольшого кода (возможно, используя Edit и Continue, как описано выше), чтобы захватить Keyboard.GetState().IsKeyDown()
(на самом деле у меня есть для этого более простой в использовании упаковщик) и настроить значение по нажатию клавиш. Все более сложное не стоит усилий.
На практике гораздо важнее то, что я могу визуализировать (а не изменять) значения в режиме реального времени. Для этого у меня есть хороший маленький класс, который может буферизовать строки и текст, который должен быть нарисован в конце фрейма. Это также полезно для быстрого создания прототипов.
(И еще раз, приятно иметь возможность «Редактировать и продолжить» эти визуализации во время выполнения.)
(источник: andrewrussell.net )
( отсюда )
Боюсь, у меня нет «хорошего» источника для публикации в данный момент (возможно, позже). Но это в основном просто список строк (для этой библиотеки круглых строк ) и строк (для встроенного в XNA SpriteBatch). Просто сделайте это public static
где-нибудь и нарисуйте все с соответствующим преобразованием, чтобы все появилось в «мировом пространстве» (а затем очистите списки для следующего кадра).