Merhaba arkadaşlar, bir süredir hareketlendirmediğimiz örnek oyun paylaşımlarını bir nebze hareketlendirmek adına bir sonraki oyunumuzu paylaşmanın vakti geldi. Evet tetris oyunundan sonra bu sefer yine klasikler arasında olan yılan oyunu ile karşınızdayım. Oyuna ilişkin önemli noktalar şu şekilde:
- Oyunumuzun adı “Begüm Yılan Terbiyecisi” 🙂
- Oyunu C++ kullanarak (olabildiğince modern yetenekler ile) konsol uygulaması (evet öle aman aman grafikleri olmayabilir :),
- Oyuna ilişkin kaynak kodları SnakeGame Kod Ambarından çekebilirsiniz,
- Oyun şimdilik sadece Windows platformu için ama bir kahraman çıkıp diğer platformlara taşır ise hiç de fena olmaz,
- İki temel modu var: Yılan ve Tron modları. Yılan modunda meyveleri yedikçe yılan büyüyor, diğerinde ise süreye bağlı olarak sürekli büyüyor,
- Şu an için tek kişilik ama basit de olsa çoklu oyun desteği eklemeyi planlıyorum,
- Visual Studio Code kullanarak basit doxygen uyumlu kod yorumları da ekledim. Merak edenler “/docs” dizini altında doxygen çıktısını görebilirler,
- Oyun içerisinde daha önce Oyun Döngüleri yazımda sizlere aktardığım oyun döngülerinin nasıl kullanıldığını birinci elden görebilirsiniz. Bunun ile ilgili olarak LoopManager sınıfına göz atabilirsiniz,
- Ayrıca basit ihtiyaçlarınızı göreceğini düşündüğüm bir konsol kütüphanesini de bu oyun ile bulabilirsiniz,
- Oyun temel olarak Giriş, Logo, Menü, Oyun ve Oyun Bitti ekranlarından oluşuyor. Bunlar da SnakeGameScreen tipi ile ifade ediliyor,
- Oyunun temel mekaniği şimdilik Snake sınıfı içerisinde. Şöyleki:
- Yılan parçalarını bir kuyrukta tutuyoruz,
- Yılanın mevcut yönüne göre yeni parçayı kuyruğun sonundan silip başına ekliyoruz,
- Oyun moduna göre kuyruğun sonuna da yeni parça ekleyebiliyoruz,
- Oyunda şimdilik basite bazı meyveler var ve Yılan modunda bunları yiyen yılanımız bir birim uzuyor,
- Bunların konumu rastgele belirleniyor ve aynı anda en fazla 5 adet olabiliyor,
- Tron modunda ise meyveler oluşturulmuyor. Snake sınıfı içerisindeki birim zamanda bir yılan bir birim uzuyor,
- Şu an için sadece duvarlara çarpınca oyun bitiyor. Yani yılanımızın içinden geçebiliyorsunuz,
- Oyun ile ilgili bilgileri bir bilgi penceresinden sürekli gösteriyoruz.
- Oyun konsol uygulaması olarak yazılmış olsa da başka platformlara kolayca taşınabileceğini düşünüyorum. Elbette konsol uygulamasına has bazı durumları kotarmak gerekebiliyor,
- Ayrıca oyuna başlamak, temel bazı ayarları yapabilmek için hiyerarşik bir menümüz de var. Bu kabiliyetten sorumlu sınıfımız da Menu,
- Son olarak oyun içerisine basit bir Midi müziği çalabilme kabiliyeti de ekledim ve ilgili müzik dosyasını da MusicRawData dosyasına gömdüm (bu tarz dosyaları hazır ya da kendi yazacağız uygulama ile oluşturabilirsiniz). Müzik işleri ayrı bir thread de (hazır yeni yazısını yazmışken bahsedelim 🙂 ) MidiPlayer sınıfı tarafından kotarılıyor.
Evet bu yazımı da oyundan ekran görüntüleri ile sonlandırayım 🙂
Bu arada her türlü iyileştirme, güncelleme veya fikirlerinizi de paylaşırsanız sevinirim. Tekrar görüşmek üzere sevgili yazılımperver dostlarım.