Efekt maszyny do pisania

0

Cześć! Od niedawna bawię się w C# i zacząłem tworzyć grę tekstową, po skończeniu menu i dodaniu kilku podmenu, zacząłem się zastanawiać nad tym, jak dodać animację pojawiających się liter, przeczesałem fora, githuba, youtube - nic satysfakcjonującego, wszystko dotyczy C++, od razu zapytam, czy do takich rzeczy lepszy jest C# czy C++?

3

Wystarczy pisać literka po literce i usypiać wątek na x milisekund. Dla przykładu coś takiego:

static void Write(string line)
{
    foreach(var character in line)
    {
        Console.Write(character);
        Thread.Sleep(150);
    }
    Console.WriteLine(); // Nowa linia
}
static void Main(string[] args)
{
    Write("Hello World");
}

Pamiętaj również o dodaniu using System.Threading;

0

Dziękuję bardzo! Wracam do pracy z uśmiechem na twarzy i nową energią!

0

Dodaj losowy czas opóźnienia a będzie to znacznie ładniejszy efekt.

        private static void WriteLikeMachine(string textToWrite)
        {
            Random rnd = new Random();

            foreach (char item in textToWrite)
            {
                Thread.Sleep(rnd.Next(100, 500));
                Console.Write(item);

            }
        }
0

No i możesz jakiś dźwięk odegrać dodatkowo. Taki stuk klawiszy. Też byłoby fajnie, gdybyś miał kilka stuków (kilka różnych dźwięków) i losowo je odgrywał.

0

Wziąłem to pod uwagę, przy okazji, pytanie, chciałbym zrobić coś w stylu zmiennej którą ustawia użytkownik, tj Nick gracza, i teoretycznie wszystko chyba się zgadza, ale! Chcę, żeby to była zmienna dostępna wszędzie, rozważałem wiele możliwości, ale nie mam pojęcia jak dać C# do zrozumienia o co mi chodzi. Poniżej wrzucę kod tej zmiennej, i zgaduję że czegoś mi tutaj brakuje (miałem zamysł żeby użyć obj). Wiedzo, przybywaj!

    class Kampania
    {
        static public void Kampania1()
        {
            AnimacjaTekstu.Write("Wybierz swój pseudonim:");
            string Nick;
            Nick = Console.ReadLine();
            Console.Clear();
            AnimacjaTekstu.Write("Witaj " +Nick+ ". Wybierz poziom trudności!");
1

No to możesz umieścić ją w klasie, nie metodzie:

class Kampania
{
    private static string Nick;
    public static void Kampania1()
    {
        AnimacjaTekstu.Write("Wybierz swój pseudonim:");
        Nick = Console.ReadLine();
        Console.Clear();
        AnimacjaTekstu.Write("Witaj " + Nick + ". Wybierz poziom trudności!");
    }

Wtedy widoczna jest ona wszędzie w klasie Kampania. Chyba że potrzebujesz jej poza klasą, wtedy możesz zmienić ją na public.

1 użytkowników online, w tym zalogowanych: 0, gości: 1