42 - So_long 🕹️

So_long projesi, 2D bir labirent oyunu oluşturmayı amaçlar. Bu oyun, kullanıcının bir karakteri bir labirent içinde hareket ettirerek belirli hedeflere ulaşmasını sağlar. Proje, temel olarak oyun programlama, grafik yönetimi ve kullanıcı etkileşimi konularında bilgi edinmeyi sağlar. Oyun, temel oyun mekaniği, çarpışma algılama ve olay yönetimi gibi konuları içerir.


game


Projenin Amacı 🎯

So_long projesinin amacı, 2D bir labirent oyunu oluşturmaktır. Oyunda, kullanıcı bir karakteri bir labirent içinde yönlendirerek belirli hedeflere ulaşmayı amaçlar. Bu projede, oyun mekaniği, grafik yönetimi ve kullanıcı etkileşimi gibi konulara odaklanılır.

Labirent, bir dizi harita dosyasından oluşturulur ve karakter, oyuncunun yönlendirmesiyle bu labirentte hareket eder. Proje, çarpışma algılama, oyun olaylarını yönetme ve kullanıcı etkileşimlerini işleme gibi temel oyun programlama becerilerini geliştirmeyi sağlar.

Temel Hedefler 🏆

  • Labirent Oluşturma: 2D labirent haritalarını okuyup, ekran üzerinde doğru bir şekilde render etmek. Harita dosyaları, duvarlar, geçişler ve hedef noktaları içermelidir. Bu, oyunun görsel yapısını ve işlevselliğini belirler. 🗺️
  • Karakter Hareketi: Kullanıcının karakteri yön tuşlarıyla labirent içinde serbestçe hareket ettirmesini sağlamak. Karakterin hareketi, oyuncunun navigasyonunu ve oyun akıcılığını artırır. 🕹️
  • Çarpışma Algılama: Karakterin labirent içindeki duvarlar ve diğer nesnelerle çarpışmalarını algılamak. Bu, karakterin geçilemez alanlarla etkileşimini yönetir ve oyunun fizik kurallarını uygular. 🚧
  • Oyun Olayları: Oyunun başlangıcı, bitişi ve diğer kullanıcı etkileşimlerini yönetmek. Bu, oyunun akışını ve oyuncu geri bildirimlerini düzenler, seviyeler arası geçişler ve hedef tamamlama gibi olayları içerir. 🎮
  • Kullanıcı Etkileşimi: Oyuncunun oyuna olan etkileşimini geliştirmek için kullanıcı arayüzü ve kontrol mekanizmalarını optimize etmek. Bu, oyuncunun oyunu daha iyi anlamasını ve keyif almasını sağlar. 🖱️
  • Oyun Performansı: Oyunun genel performansını ve verimliliğini artırmak. Grafiklerin ve etkileşimlerin akıcı bir şekilde işlenmesi, teknik sorunların önlenmesi ve oyuncu deneyiminin iyileştirilmesini sağlar. ⚡

Kullanılan Araçlar 🛠️

So_long projesinde kullanılan bazı temel araçlar ve kütüphaneler şunlardır:

  • MiniLibX: Grafik işlemleri ve pencere yönetimi için kullanılan bir kütüphane.
  • Xlib: X Window System ile etkileşim için kullanılan bir kütüphane.

Gereksinimler 📋

So_long projesini çalıştırmak için aşağıdaki gereksinimlerin sağlanması gerekir:

  • Unix tabanlı bir işletim sistemi (Linux, macOS)
  • GCC derleyici
  • MiniLibX kütüphanesi

Kurulum 🔧

Projeyi yerel bir makinede çalıştırmak için aşağıdaki adımları izleyin:

  1. Repoyu yerel makinenize klonlayın:
    git clone https://github.com/username/so_long.git
    
  2. Proje dizinine gidin:
    cd so_long
  3. Projeyi derlemek için Makefile'ı çalıştırın:
    Make
  4. Oyunu başlatın ve labirent dosyasını argüman olarak girin:
    ./so_long map.ber

Burada, map.ber Labirent dosyası .ber uzantısına sahip olmalı ve karakterinizin hareket edeceği labirenti içermelidir. 🗂️

Katkıda Bulunma 🤝

So_long projesine katkıda bulunmak isterseniz, aşağıdaki adımları takip edebilirsiniz:

  • Sorun Bildirme: Bir sorun veya hata ile karşılaşırsanız, lütfen GitHub Issues sayfasından bir sorun bildirimi oluşturun.
  • Katkıda Bulunma: Kod katkıları yapmak istiyorsanız, önce projeyi fork edin, değişikliklerinizi yapın ve ardından bir pull request oluşturun. Değişikliklerinizi açıklayan bir not eklemeyi unutmayın.

Bu README dosyası Derya ACAR tarafından hazırlanmıştır.