Mar 272016
 
4.194 views

Python pygame ve kar yağışı

kar yağışıPythonun en zayıf olduğu alan belki de görsel tarafı. Komut modunda olağanüstü bir performansa sahip olsa da, güncel yazılımların ihtiyaç duyduğu görsel etkileşim konusunda yardıma muhtaç.

Pythonun bu açığını kapatmaya yönelik araçlardan birisi pygame. Bu kütüphane ile iki boyutlu grafikler için pratik çözümler geliştirebilirsiniz. Klavye ve mouse etkileşimi, thread kullanımı önünüze geniş bir kullanım alanı açıyor. Gerisi hayal gücünüze kalmış.

“pygame kütüphanesi”ni Pythonun en güncel sürümüyle birlikte kullanmanız mümkün. Ne yazık ki bu çalışmayı -şimdilik- sadece windows üzerinde yapabiliyorsunuz. Python 3.5 ile uyumlu pygame sürümünü
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame
adresinden indirip bilgisayarınıza kurabilirsiniz.

İndireceğiniz dosyanın adında Python sürüm numarası ve işlemci bilgileri yer alıyor. Örneğin:
pygame-1.9.2a0-cp35-none-win32.whl
dosyası 32 bitlik sistem üzerinde çalışan Python 3.5 sürümü içindir. 64 bitlik sisteme göre derlenmiş dosya ise:
pygame-1.9.2a0-cp35-none-win_amd64.whl

Eğer sisteminiz hem 32, hem de 64 biti destekliyorsa, Pythonu hangisine göre kurduğunuz önemlidir. Örneğin benim bilgisayarım 64 biti desteklediği halde, 32 bitlik python kullanıyorum.

Python 3.5.x ve 32 bitlik bir sistemde pygame kurulum komutu şu şekilde:
pip install pygame-1.9.2a0-cp35-none-win32.whl

Yukarıda gördüğünüz kar manzarasını oluşturan açık kaynak proje github üzerinde yer alıyor. Projenin orijinal adresi: https://github.com/adamkdean/Python.Snowfall

Buradaki projeden oluşturduğum çatalın adresi ise şöyle:
https://github.com/ahmetax/Python.Snowfall

Orijinal projede yağan kar düz zeminde birikiyor. Ben ise düz bir zemin yerine ağaçlıklı bir tepecik kullandım. Kar birikimi tepenin şekline uygun şekilde gerçekleşiyor. Aslında farklı arka planlar kullanarak bu projeyi daha da ilginç bir hale getirmek mümkün olabilir.

Yağan karın birikmesi dışında kodlar rüzgar etkisini de içeriyor.

Kodları yukarıdaki adreslerden indirip inceleyebilirsiniz. Benim yeniden düzenlediğim haliyle kodlar python 3.5.1 ve pygame-1.9.2a0 sürümlerini kullanarak çalışabiliyor.

Kodlar karmaşık olmadığı için ayrıca açıklamaya gerek duymuyorum. Yine de takıldığınız bir nokta olursa, sorularınızı bana yöneltebilirsiniz.

Ahmet Aksoy