Я просто хочу знать, как создать простые анимации как мигание, переместив материалы в консольные приложения C#. Есть ли какой-либо специальный метод для этого?
Вам необходимо использовать Console.ForegroundColor
, Console.BackgroundColor
и Console.SetCursorPosition (int, int)
РЕДАКТИРОВАТЬ : Для вдохновения, Let's Dance
Я не СЛИШКОМ уверен, что знаю, о чем ты. но я попробую. Я думаю, что самый лучший и лучший способ вызвать эффект «мигания» (или, как мне кажется, эффект мигания) - это использовать возврат каретки. Лучший способ объяснить это вам - показать вам эксперимент с Foo Bar. запустите новый проект и в своей функции Main попробуйте следующее.
Console.WriteLine("Foo/nBar");
Результат будет выглядеть так
Foo
Bar
Но если вы используете возврат каретки.
Console.WriteLine("Foo/rBar");
Результат будет выглядеть так
Bar
Причина в том, что Записывается Foo, затем возврат каретки возвращает вас НАЗАД в начало строки, затем записывается Bar. Все, что вы когда-либо видите, это Бар. Это может быть полезно для «перемещения» вещей в одну строку вместо того, чтобы переписывать одни и те же вещи снова в несколько строк. Способ продвигаться вперед - использовать Console.Write (); Попробуйте следующее.
Console.Write("Loading");
for(int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
Console.Write(".");
}
Вывод должен быть
Loading
, за которым следует полная остановка каждую секунду в течение 10 секунд.
Если вы объедините возврат каретки с Console.Write (); функция вы можете записать несколько вещей в одной строке, очистить строку и написать что-то еще, или, действительно, то же самое, просто немного сдвинулось. (Для этого, конечно, потребуется больше, чем я вам показал, например, запись, где находится "объект", которым вы управляете. Если вам нужен короткий пример, я был бы рад сделать его, просто прокомментируйте и попросите меня об этом :)
Изменить: Я заметил, что люди упоминают цвет, о котором я забыл. Если бы вы делали анимацию, я думаю, цвет был бы необходим. ForegroundColor и BackgroundColor - вот где это. обратите внимание, что ForegroundColor будет применяться к следующим символам, записанным в консоль, он не перекрашивает консоль полностью. / Edit
Надеюсь, это поможет,
Skintkingle;)
Да, для этого существует довольно много методов .
В частности, вы можете посмотреть следующие методы консоли:
Традиционный прядильщик консоли:
static void Main(string[] args)
{
ConsoleSpiner spin = new ConsoleSpiner();
Console.Write("Working....");
while (true)
{
spin.Turn();
}
}
public class ConsoleSpiner
{
int counter;
public ConsoleSpiner()
{
counter = 0;
}
public void Turn()
{
counter++;
switch (counter % 4)
{
case 0: Console.Write("/"); break;
case 1: Console.Write("-"); break;
case 2: Console.Write("\\"); break;
case 3: Console.Write("|"); break;
}
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
}
}