Python basit bir command-line animasyonu.

23 Mar 2008
55
1
Python command-line Animasyon yapımı.

Eğlence amaçlı, olur mu acaba diyerek yazdım. Kullanmak için python win32api yi yüklemeniz gerekiyor.

Sağ yön tuşuna bastığınız zaman "-->" u sağa doğru götürüyor, animasyon gibi gözüküyor.

Örnek olarak "-->" yerine ascii de bir adam çizimi koyup yürüme vb. gibi animasyonlar ekleyebilirsiniz.

Sol tuşuna basıldığında "<--" yazan ve boşluğu bir azaltan bir if fonksiyonu ekleyebilirsiniz. Bu sayede sol tuşuna bastığınızda animasyonunuz sol tarafa doğru gider.
edit : konuyu açarken düşünmüştüm, biraz daha karmaşık oldu alta ikinci bir kod olarak ekledim.

İstediğiniz şekilde değiştirmekte kullanmakta özgürsünüz. Biraz daha geliştirip GetAsyncKeyState i kullanarak istediğiniz tuşa fonksiyon verip birşeyleri ekrana yazdırabilirsiniz.

Kod:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from win32api import GetAsyncKeyState
from time import sleep
from os import system

def animasyon():
    bosluk = ""
    a = 0
    while True:
        sleep(0.002) # bu sleepi cpu yu fazla zorlamasın diye ekledim.
        if bosluk == "                                                                                                                  ":  
            bosluk = ""# boşluk sınırını kendiniz belirleyebilirsiniz bu if fonksiyonunda boşluk sınırını belirledim. 
        if (GetAsyncKeyState(39)): # VK_RIGHT = 39 , yani sağ yön tuşuna basıldığında...
            a = a + 1 # a değerimizi tuşa her basıldığında 1 arttırıyoruz.
            if a % 5 == 0: # a değerimiz 5 e bölündüğünde kalan 0 ise
                sleep(0.06) # animasyonu biraz yavaşlatıyoruz ki güzel görünsün.            
            system('cls') # cmd ekranını temizliyoruz.
            bosluk += " " # boşluğa bir boşluk ekliyoruz.
            print bosluk+"-->" # ekleyeceğimiz boşlukla beraber animasyonuz yazdırıyoruz.
            sleep(0.001) 
animasyon()
Konuyu açarken programı biraz daha geliştirmeyi düşündüm altta geliştirilmiş hali.
Biraz daha düşünelim, çok uğraşmak isteyen varsa oyun bile yapabilir diye düşünüyorum :puah
Okunabilirlik açısından kodu kopyalayıp py ile kaydedip, sağ tık->edit with idle yi seçip,
daha rahat bir şekilde kodu anlayabilirsiniz.
Python 2.7 kullanılarak yazılmıştır.

Kod:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from win32api import GetAsyncKeyState
from time import sleep
from os import system

def animasyon():
    bosluk = " "
    a = 0
    x = 1
    while True:
        sleep(0.002) # bu sleepi cpu yu fazla zorlamasın diye ekledim.
        if bosluk == "                                                                                                                  ":  
            bosluk = " "# boşluk sınırını kendiniz belirleyebilirsiniz bu if fonksiyonunda boşluk sınırını belirledim. 
        if (GetAsyncKeyState(39)): # VK_RIGHT = 39 getasynckeystate kodu, sağ tuş.
            a = a + 1 # a değerimizi tuşa her basıldığında 1 arttırıyoruz.
            if a % 5 == 0: # a değerimiz 5 e bölündüğünde kalan 0 ise
                sleep(0.06) # animasyonu biraz yavaşlatıyoruz ki güzel görünsün.            
            system('cls') # cmd ekranını temizliyoruz.
            bosluk = " " # bosluk değerimizi eski haline döndürdük.
            bosluk = bosluk * x # boşluğa bir boşluk ekliyoruz.
            x = x + 1 # x çarpanını bir arttırdık.
            print bosluk+"-->" # ekleyeceğimiz boşlukla beraber animasyonuz yazdırıyoruz.
            sleep(0.001) 
        if (GetAsyncKeyState(37)): # VK_LEFT = 37 getasynckeystate kodu, sol tuş.
            a = a + 1 # a değerimizi tuşa her basıldığında 1 arttırıyoruz.
            if a % 5 == 0: # a değerimiz 5 e bölündüğünde kalan 0 ise
                sleep(0.06) # animasyonu biraz yavaşlatıyoruz ki güzel görünsün.            
            system('cls') # cmd ekranını temizliyoruz.
            bosluk = " " # bosluk değerimizi eski haline döndürdük
            bosluk = bosluk * x # boşluğa bir boşluk ekliyoruz.
            x = x - 1 # x çarpanını bir azalttık.
            print bosluk+"<--" # ekleyeceğimiz boşlukla beraber animasyonuz yazdırıyoruz.
            sleep(0.001) 
animasyon()

Resim =
q_2KG6.gif
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.