Есть ли лучший способ делать консольные игры, чем с Console.Clear()?
Я возиться с игровыми циклами и собираюсь создавать игры на практике.
В настоящее время у меня есть стабильный игровой цикл, где игра обновляется как можно быстрее, а рендеринг обновляется x раз в секунду (в настоящее время 25)
В основном метод рендеринга - это draw + Console.Clear(), и при очень высоких обновлениях отображение становится очень нервным, поскольку при ударе Console.Clear () рисование не заканчивается.
Есть ли лучший способ сделать что-то подобное?
Могу ли я записать какие-либо данные в консоль, а затем заменить их другими данными?
3 ответа
Предполагая, что вы снова пишете полный экран из topleft в каждом цикле, вы можете просто заменить Clear() на:
Console.SetCursorPosition(0, 0);
И перезаписать предыдущий экран.
Так как вы все равно находитесь в C#, вы можете захотеть заглянуть в XNA Framework.
Я предполагаю, что ваша проблема возникает из Console.Clear()
не оптимизирован для такого использования, поскольку XNA использует аналогичный метод (Clear()
называется на GraphicsDevice
).
Если вы не хотите пытаться использовать XNA, то, возможно, будет быстрее нарисовать прямоугольник (сплошной черный или серый или любой другой), чем вызывать Clear()
"очистить" экран, а затем нарисуйте его.
Вы хотите проверить ConsoleLibrary
Я не использовал его, но из статьи / демонстрации кажется, что это позволит вам делать кучу полезных вещей на консоли.