Evet arkadaşlar bir süre önce yazmaya başladığım ve sizlerle paylaştığım Tetris oyununu nihayetlendirdim. Biraz vakit aldı ama değdi. Burada uzun uzadıya bir önceki sürümden bu yana ne yaptığımı anlatmaktansa kısaca neler eklediğimi sekme sekme anlatıp, tadını çıkarmayı size bırakacağım.
İnternette her ne kadar bu tarz oyunlara ilişkin kodlar olsa da çoğu genelde hızlıca yazılmış veya biraz okunması güç kodlar. Bu tarz örnekler ile sizlere tam anlamıyla bütün bir uygulama sunmayı açıkçası hedefledim. Başarabildiysem ne mutlu bana. Oyun ile ilgili ilk yazıma aşağıdaki adresten ulaşabilirsiniz:
https://www.yazilimperver.com/index.php/2018/04/23/tetris-v1-0/
Oyunun çalıştırılabilir haline (.exe) ye buradan ulaşabilir.
Kodlarını ise bu kod ambarından git aracılığı ile çekebilirsiniz. İlk sürüm ile aynı yere koydum ama özellikle dizinleri ayırdım. Bu sayede farkları daha iyi gözlemleyebilirsiniz.
Gelelim yaptıklarıma:
- Öncelikle kodu tek bir dosyadan kurtardım,
- Kod içerisini bol bol türkçe açıklamalar ile doldurdum. Onun için dalmaktan kesinlikle korkmayın,
- Oyun görsel ve seslerinin bir kısmını kendim hazırladım (ekranlar, taşlar, log, vs) bir kısmını da internetten bedava sunulan sitelerden edindim. Kendi hazırladıklarım ile ilgili bilgi için bana ulaşabilirsiniz,
- Temel olarak oyun ile ilgili ekranlara göre mantıksal bir ayrıma gittim. Açılış/splash, menü/menu, ayarlar/settings, puan/score, oyun/game ekranları oluşturdum. Daha önce hemen oyun başlıyordu, bu sayede basitçe bir oyunda olabilecek ekranları ve ilişkilerini görebilirsiniz,
- Oyun puanı, tamamlama, süre, girdi kontrollerine ilişkin kodları ekran sınıfları içerisinde bulabilirsiniz,
- Sınıflar arası haberleşme için basit bir gerçekleme bulabilirsiniz (ScreenEvent),
- Oyunda süreye göre zorluk seviyeleri mevcut,
- En yüksek skorlar tutuluyor,
- Ayrıca bonus olarak çocuk modu ekledim :). Ne yaptığını keşfetmeyi sizlere bırakıyorum,
- Ayarlar üzerinden müzik seviyesi, mod seçimi vs yapabileceğiniz bir ekran mevcut,
- Oyuna ses ve müzik eklendi,
- Aslında bu kod içerisinde önceki yazılarımın birinde bahsettiğim önemli bir konu yok ki o da oyun döngüleri. Bunlardan uygun olanını eklemeyi size bırakıyorum. Unutmayın en iyi öğrenme elleri sıvazlayıp işe girişmek,
- Performans anlamında iyileştirilebilecek noktalar olabilir.
Umarım beğenirsiniz. Üzerine yaptığınız eklemeleri benimle paylaşmayı da unutmayın lütfen 🙂
Bir sonraki oyun ya da uygulamamızda görüşene kadar kendinize iyi bakın sevgili yazılımperver dostlarım.
Oyundan ekran görüntüleri ile sizlere veda ediyorum.