J'écris actuellement un jeu roguelike à des fins d'apprentissage/amusant. Je l'écris dans la console, et j'ai des problèmes avec la mise à jour laggy de la carte. J'ai fait des tonnes de recherches en ligne et suis tombé sur une solution possible mais elle a été écrite en C++ (je crois).Comment puis-je créer un tableau d'informations Cha incluant des attributs comme la couleur de premier plan?
La solution était d'utiliser WriteConsoleOutput, mais je ne crois pas que ce soit disponible en C#. D'autres recherches ont abouti à une solution C# possible. Passez un tableau à la méthode Console.Write. Cependant, le problème avec cette méthode est que je ne peux pas transmettre (à ma connaissance actuelle) des attributs sur le caractère, comme la couleur de premier plan.
J'ai jeté quelque chose ensemble pour tester le passage d'un tableau à Console.Write. Le code ci-dessous affichera une grille de nombres. Je voudrais avoir la possibilité de changer la couleur de premier plan pour chaque valeur dans la grille. Donc, 1 serait bleu, et 2 serait rouge, etc ...
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
J'ai fini à l'aide Mutine qui est une bibliothèque pour faire des interfaces de type console en C#. Fonctionne très bien, et maintenant je ne dois pas créer ma propre console.
http://bitbucket.org/munificent/malison/wiki/Home
Pourrait probablement faire avec un peu d'action StringBuilder si cette méthode est en cours de thrash. – spender