Ostatnio stworzyłam funkcję tworzącą animację "pisania" tekstu w konsoli.
void ani(string line, char color)
{
switch(color)
{
case '1': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 1); break;
case '2': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2); break;
case '3': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 3); break;
case '4': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4); break;
case '5': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 5); break;
case '6': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 6); break;
case '7': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); break;
case '8': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8); break;
case '9': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); break;
case 'a': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10); break;
case 'b': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11); break;
case 'c': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); break;
case 'd': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 13); break;
case 'e': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14); break;
case 'f': SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15); break;
}
int nr = line.size();
for (int i = 0; i <= nr; i++)
{
cout << line[i];
Sleep(100);
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
}
Dodatkowo funkcja zmienia kolor w palecie 1-f (łatwiej mi je zapamiętać niż to 1-15).
A potem pomyślałam o tej nieszczęsnej multi-platformowości. Gdybym zrobiła fajną grę używając tej funkcji, przez to Sleep(100) gra nie działałaby na innych platformach niż windows. Jest jakiś zamiennik?
A poza tym, co można by tu jeszcze zmienić?