Консольные анимации

Я просто хочу знать, как создать простые анимации как мигание, переместив материалы в консольные приложения C#. Есть ли какой-либо специальный метод для этого?

48
задан dtb 17 December 2009 в 17:36
поделиться

4 ответа

Вам необходимо использовать Console.ForegroundColor , Console.BackgroundColor и Console.SetCursorPosition (int, int)

РЕДАКТИРОВАТЬ : Для вдохновения, Let's Dance

5
ответ дан 26 November 2019 в 18:47
поделиться

Я не СЛИШКОМ уверен, что знаю, о чем ты. но я попробую. Я думаю, что самый лучший и лучший способ вызвать эффект «мигания» (или, как мне кажется, эффект мигания) - это использовать возврат каретки. Лучший способ объяснить это вам - показать вам эксперимент с 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;)

1
ответ дан 26 November 2019 в 18:47
поделиться

Да, для этого существует довольно много методов .

В частности, вы можете посмотреть следующие методы консоли:

  1. SetCursorPosition (вы можете перемещать курсор и перезаписывать элементы)
  2. MoveBufferArea (копировать / вставлять поверх областей)
  3. ForegroundColor и BackgroundColor (изменять цвет)
6
ответ дан 26 November 2019 в 18:47
поделиться

Традиционный прядильщик консоли:

    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);
    }
}
52
ответ дан 26 November 2019 в 18:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: