Console Application'dan Animasyon yapmamız mümkün mü?

0

Merhaba,

Console Application'dan Animasyon yapmamız mümkün mü? Animasyon dediğim şimdiki çizgi filmler gibi kaliteli şeyler değil tabiki de. Böyle *, ▄,|,-  gibi simgelerden olacak. Örneğin, bir tane roket var kalkış anının animasyonu gibi. İnternette arattım ancak hiç Türkçe kaynak bulamadım. Programlama dili farketmez.

@alattin

toprak34 toprak34 (2031)
6 yıl önce sordu

  • Toprak sen kendini baya geliştirdin. Programlama dili farketmez dediğine göre :) omercik 6 yıl önce

Toplam 1 Cevap


0

Consolda ilkel denecek animasyonlar yapabilirsin, benim yazdığım bir kaç tana vardı ama bulamadım.

Klasi bir spinner örneği var. Bu DOS işletim sisteminde de bolca kullanılırdı. Virus taraması yaparken vs bu çıkardı ekrana:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        
        static void Main(string[] args)
        {
            ConsoleSpiner spin = new ConsoleSpiner();
            Console.Write("Taranıyor....");
            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);
            }
        }
    }
}

Kod alıntıdır. Şurada bir kaç örnek bulabilirsin: https://stackoverflow.com/questions/1923323/console-animations

Konsolda animasyon yapmak senin yaratıcılığına kalmış.

C# konsol ASCII animasyon örneği: Aşağı doğru akan Star wars

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;

class Program
{
    static void ConsoleDraw(IEnumerable<string> lines, int x, int y)
    {
        if (x > Console.WindowWidth) return;
        if (y > Console.WindowHeight) return;

        var trimLeft = x < 0 ? -x : 0;
        int index = y;

        x = x < 0 ? 0 : x;
        y = y < 0 ? 0 : y;

        var linesToPrint =
            from line in lines
            let currentIndex = index++
            where currentIndex > 0 && currentIndex < Console.WindowHeight
            select new {
                Text = new String(line.Skip(trimLeft).Take(Math.Min(Console.WindowWidth - x, line.Length - trimLeft)).ToArray()),
                X = x,
                Y = y++
            };

        Console.Clear();
        foreach (var line in linesToPrint)
        {
            Console.SetCursorPosition(line.X, line.Y);
            Console.Write(line.Text);
        }
    }

    static void Main(string[] args)
    {
        Console.CursorVisible = false;

        var arr = new[]
        {
            @"        ________________.  ___     .______  ",
            @"       /                | /   \    |   _  \",
            @"      |   (-----|  |----`/  ^  \   |  |_)  |",
            @"       \   \    |  |    /  /_\  \  |      /",
            @"  .-----)   |   |  |   /  _____  \ |  |\  \-------.",
            @"  |________/    |__|  /__/     \__\| _| `.________|",
            @"   ____    __    ____  ___     .______    ________.",
            @"   \   \  /  \  /   / /   \    |   _  \  /        |",
            @"    \   \/    \/   / /  ^  \   |  |_)  ||   (-----`",
            @"     \            / /  /_\  \  |      /  \   \",
            @"      \    /\    / /  _____  \ |  |\  \---)   |",
            @"       \__/  \__/ /__/     \__\|__| `._______/",
        };

        var maxLength = arr.Aggregate(0, (max, line) => Math.Max(max, line.Length));
        var x = Console.BufferWidth/2 - maxLength/2;
        for (int y = -arr.Length; y < Console.WindowHeight + arr.Length; y++)
        {
            ConsoleDraw(arr, x, y);
            Thread.Sleep(100);
        }
    }
}

 

Bir başka örnek: https://www.vitoshacademy.com/c-animate-a-ascii-picture-in-console/

alattin alattin (17095)
6 yıl önce cevaplandı

  • @alattin abi bu attığın linke bakmıştım, ancak hepsi tarayıcı ekranında kullanılan şey. Spinner ismi galiba. Başka yol yokmu? Hani ASCII falan var ya onları yapamazmıyız? toprak34 6 yıl önce
  • @alattin abi bir de internette c# snake game kodları bulursan atarmısın? Yarına yetiştirmem gerekiyor ben hiç bulamadım çalışmıyor. toprak34 6 yıl önce
  • @toprak34 sen istersin de olmaz mı? cevabı güncelledim. alattin 6 yıl önce
  • @alattin Çok teşekkürler abi :) toprak34 6 yıl önce
üyelik gerektirir

Cevap yazabilmek için üye girişi yapmalısınız.

Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol