我目前正在爲學習目的/樂趣編寫一個roguelike遊戲。我正在寫控制檯,我遇到了地圖更新緩慢的問題。我做了大量的在線搜索,並遇到了一個可能的解決方案,但它是用C++編寫的(我相信)。如何創建包含前景顏色等屬性的Cha信息數組?
解決方案是使用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();
}
SOLUTION
我結束了使用Malison這是在C#中做控制檯風格的界面庫。效果很好,現在我不必創建自己的控制檯。
http://bitbucket.org/munificent/malison/wiki/Home
如果這個方法被破壞,可能會用一點StringBuilder操作。 – spender 2010-11-10 00:52:15