Skip to content

Kocaeli Üniversitesi Mühendislik Fakültesi Yazılım Mühendisliği 23-24 Programlama 2 Projesi GitHub sayfası. Referans alınan oyun Angry Sharks.

License

Notifications You must be signed in to change notification settings

metehansenyer/KOU-YZM104-CppGameProject-AngrySharks

Repository files navigation

KOÜ Yazılım Müh. Programlama 2 Dersi Dönem Projesi

Kocaeli Üniversitesi Mühendislik Fakültesi Yazılım Mühendisliği 23-24 Programlama 2 Projesi GitHub sayfası. Referans alınan oyun Angry Sharks.

İçerik

Kullanılan Araçlar

cplusplus raylib clion cmake photoshop

  • Classları aktif olarak kullanmak istediğim için C++'ı tercih ettim.
  • Görüntü işlemek için bir çok kütüphane var. Ben ihtiyaçlarım ve amacım doğrultusunda Raylib'i tercih ettim.
  • Kullandığım kod editörü de CLion.
  • Hem Mac hem Windows'u aynı anda kullandığım için bu projede CMake kullanmayı tercih ettim.
  • Kullandığım görsellerin piksel ölçümü ve düzenlenmesi için Adobe Photoshop 24 kullandım.
Kullandığım Araçlar Hakkında Linkler Link
Compiler MinGW-64
Raylib Get Started in raylib in 20 minutes!
Raylib Sprite Animation in Raylib
Raylib ReSize Screen Problem Solution
(Kodun temeli bu ben biraz güncelledim.)
Raylib Circle and Rotated Rectangle Collision Detection
(Döndürülmüş bir dörtkenarın çarpışma tespiti için
buradaki formülizasyondan yararlanmaya çalıştım.
Ancak pek verimli çalışmadı belki uygulamayı
başaran olur diye bırakıyorum.)

Çalıştırma

  • Öncelikle CMake'i indirmeniz gerekli. Ya da CLion veya VSCode gibi programları ve bunların yoksa CMake eklentilerini kurmalısınız.
  • Bu linkten oyunun dosyalarını indirdikten sonra kodu derleyip çalıştırmak için CMake kullanmalısınız.
İlgili Linkler Link
CLion Create/open CMake projects
Visual Studio Code Import a CMake project into Visual Studio Code

Öz Değerlendirme

Bu proje sürecinde çok büyük başarılar elde ettim, sorunsuz geçti desem yalan olur. "Frame by Frame" olarak görsel akıcılık nasıl oluşturulur karakterler ekrana çizdirilirken konum ve durum tespiti nasıl yapılır. Bölüm dizaynı nasıl sağlanır. Pencere yönetimi nasıl olmalı gibi gibi bir çok konuda çokça hata yapıp doğru yolu buldum. Kodum çok iyi yazılmıştır demiyorum ancak elimden gelenin en iyisini yapmaya çalıştırdım. Benzer amaçla çalışan ancak farklı tarzda yazılmış bir çok kod parçası görebilirsiniz. Bunların bir çoğu test amaçlı böyle yazsam daha mı verimli olur diyip sonra memnun kalıp değiştirmediğim veyahut değiştirmeye üşendiğim parçalar. Kod çalışıyor sonuçta :D.

Kategori Sorun
Hareket Oyununcunun fare hareketlerini takip etmek kolay olsa da sorun sol ve sağ rotasyonda açısal olarak karaktere şekil aldırmak. Sonuçta şu anda kod işlevsel olsa da sınırları zorlandığında veya serbest kaldığında karakterin kendi etrafında dönmesi ya da fareyle arasında mesafe kalması gibi hatalara yol açmakta.
Çarpışma Yukarıda "Kullandığım Araçlar Hakkında Linkler" kısmında belirttiğim "Döndürülmüş bir dörtkenarın çarpışma tespiti..." olarak belirttiğim kısım. Sorunu kalıcı çözemesem de geçiçi olarak karakterin ağız ve burun kısmını kaplayacak bir dairenin diğer etmenlerle olan etkileşimini, balığın orijin noktasını burun kısmına taşıyarak o noktadan rotasyon almış haliyle gösterip çözdüm. Doğru değil ama işlevsel.
Ses Sesler bazen düzgün çalışmıyor. Titrer gibi çıkıyor. Muhtemel Raylib paket sorunu.
Karakter 3. seviye karakter boyutu çok büyük biliyorum, evet.

İçimde Kalanlar

  • Farklı 2 düşman tipi daha eklemek istiyordum. Ancak başaramadım. "enemies.png" dosyasında onları görebilirsiniz.
  • Balon balığı mekaniğini eklemiştim ancak bahsettiğim çarpışma sorunu nedeniyle düzgün çalışmıyordu. Kaldırdım.

Teşekkürler

C ve C++ öğrenimimde katkılarından dolayı Kocaeli Üniversitesi Yazılım Mühendisliği Bölümü'den Dr. Öğr. Üyesi İRFAN KÖSESOY hocama teşekkürlerimi arz ederim.

About

Kocaeli Üniversitesi Mühendislik Fakültesi Yazılım Mühendisliği 23-24 Programlama 2 Projesi GitHub sayfası. Referans alınan oyun Angry Sharks.

Topics

Resources

License

Stars

Watchers

Forks