В настоящее время я пишу игру в стиле roguelike для обучения / развлечения. Я пишу это в консоли, и у меня возникают проблемы с медленным обновлением карты. Я провел тонны онлайн-поиска и нашел возможное решение, но оно было написано на c ++ (я считаю).
Решением было использование WriteConsoleOutput, однако я не верю, что это доступно в C #. Дальнейший поиск привел к возможному решению C #. Передайте массив в метод Console.Write. Однако проблема этого метода заключается в том, что я не могу передать (насколько мне известно) атрибуты о персонаже, например цвет переднего плана.
Я бросил что-то вместе, чтобы проверить передачу массива в Console.Write. Приведенный ниже код будет отображать сетку чисел. Я хотел бы иметь возможность менять цвет переднего плана для каждого значения в сетке. Итак, 1 будет синим, а 2 красным, и т.д ...
static void Main(string[] args)
{
Console.SetWindowSize(80, 35);
Console.BufferWidth = 80;
Console.BufferHeight = 35;
string temp = "";
int[,] aryMap = new int[,] {
{0,0,0,0,0},
{1,1,1,1,1},
{2,2,2,2,2},
{3,3,3,3,3},
{4,4,4,4,4},
{5,5,5,5,5}
};
for (int h = 0; h < 5; h++)
{
temp += "\n";
for (int w = 0; w < 5; w++)
{
temp += aryMap[h, w];
}
}
Console.SetCursorPosition(0, 0);
Console.Write(temp);
string test = Console.ReadLine();
}
РЕШЕНИЕ
В итоге я использовал Malison, библиотеку для создания интерфейсов в стиле консоли в C #. Прекрасно работает, и теперь мне не нужно создавать собственную консоль.
http://bitbucket.org/munificent/malison/wiki/Home