Python ile Oyun Yapımı – Space Game

Daha önceki Python ile Oyun Yapımı – Car Race yazımda Python ile araba oyunu yapmıştık.

Bu yazımda Pyhon Pygame kütüphanesini kullanarak bir uzay oyunu yapacağız.

Kodları ve içerikleri indirebileceğiniz GitHub Linki : GitHub

Şimdi adım adım kodlarımıza geçelim.

1-Adım gerekli olarak kütüphanelerimizi ekliyoruz :

2-Adım oyunumuzun ana çervesinin başlığını ve ikonunu tanımlıyoruz : 

3-Adım oyunumuzun pencere genişliğini tanımlıyoruz :

4-Adım pygame kütüphanesine ait kullanacağımız ek parametreleri tanımlıyoruz :

5-Bu adımda oyuncumuza ait sınıfı tanımlıyoruz. Bu sınıf içerisinde _init_ fonksiyonunda ilk çağırılacak sabit özellikleri örn; karakterimize ait görsel, özellik vb. parametrelerin tanımını yapıyoruz.

update fonksiyonunda ise karakterimizin oyun içerisinde güncellenecek örneği hareket parametreleri, varsa can vb. özelliklerin tanımlamasını yapıyoruz.

6-Bu adımda oluşturulacak düşmanlara ait sınıfı tanımlıyoruz. Burada dikkat düşmanların görsel tanımlaması vb işlemler yer alıyor fakat ben düşmanların belli bir alanda rastgele oluşmasını ve farklı hızlarda olmasını istiyorum bunun için ; self.rect parametresine random olarak ekran boyutuna göre konum bilgisi atanmasını sağlıyorum. Hız için ise self.speed parametresine 5 ila 20 arası değişken bir değer atıyorum. Daha sonra update fonksiyonunda bu düşmanların sağdan sola doğru self.speed parametresinde random belirlenen hızlarda hareket etmesini sağlıyorum. self.rect.right < 0: satırında ise eğer düşmanın konumu sola kenarı geçti ise düşmanı yok ediyorum.

7-Bu adımda oyuncumuz tarafından ateşlenecek mermi sınıfını tanımlıyorum.__init__ fonksiyonu altında mermimize ait resimi belirliyorum ve self.rect parametresinde meminin oyuncudan çıkıyormuş gibi gözükmesi için oyuncuya ait konuma göre merminin çıkış pozisyonunu belirtiyorum. update fonksiyonunda merminin soldan sağa doğru haraket etmesini ve eğer ekranın sol yanına taşarsa yok olmasını sağlayacak kodları yazıyorum.

8-Bu adımda oyunumuzun çerçevesini 3. adımda tanımladığımız parametreleri de kullanarak oluşturuyoruz ve çerçevemize bir arkaplan görseli atıyoruz.

9-Bu adımda player sınıfımızı çağırıyoruz ve pygame clock nesnemizi oluşturuyoruz. Clock nesnesini aşağıdaki adımlarda sonsuz döngüye alacağımız oyunumuz için bir frame rate sınırlayıcı olarak kullanacağız.

10-Bu adımda pygame timer nesnesini kulanarak her 250 milisaniyede bir otomatik olarak düşman oluşturmasını sağlamak için ADDENEMY olayının çağırılmasını sağlayacağız. Bu olayın aşağıdaki adımlarda sonsuz döngümüz içerisinde kontrolünü sağlayıp düşmanı oluşturacağız.

11-Bu adımda pygame sprite group özelliğini kullanarak düşmanlar, mermiler için ve genel olarak sprite grupları oluşturacağız. bu gruplara oluşturulan her bir nesneyi ekleyeceğiz bu olası çakışmalar ve farklı özellikler için ileride kullanmamızı sağlayacak.

12-Bu adımda oyuncumuza ait skor metnini çerçevemize yerleştireceğiz, sonraki adımlarda sonsuz döngümüz içerisinde oyuncumuz bir düşmanı vurduğu zaman skorunun artmasını sağlayacağız.

13-Bu adımda sonsuz döngmüzü oluşturuyoruz ve olayları yakalamak için pygame.event.get() parametremizi döngü içerisinde çağırıyoruz.

14-Bu adımda klavye olaylarını yakalıyoruz. ESC tuşuna basıldığında oyunun sonlanmasını, SPACE tuşuna basıldığında Bullet sınıfımızı çağırarak oyuncumuzun ateş etmesini sağlıyoruz.

15-Bu adımda 10. adımda timer ile çağırdığımız ADDENEMY olayı çağırıldığında yapılacak işlemleri tanımlıyoruz. Bu olay çağırıldığında düşman yaratılması için Enemy sınıfını çağıracağız.

16-Bu adımda pygame.key.get_pressed() parametresi ile klavye üzerinde basılan tuşlara ait bilgileri player.update() fonksiyonumuza yolluyoruz. Bu sayede player sınıfımızın update fonksiyonunda belirttiğimiz hareket olaylarının gerçekleşmesini sağlıyoruz.

17-Bu adımda daha önce oluşturduğumuz Düşmanlar ve Mermilerin sürekliliği ve hareketini sağlamak için sonsuz döngümüz içerisinde iki sınıfa da ait update fonksiyonlarını çağırıyoruz.

18-Bu adımda arka plan resmimizin çerçeveye tam olarak sığmasını sağlayacak parametreyi yazıyoruz ve tüm objeleri ekrana çiziyoruz.

19-Bu adımda pygame pygame.sprite.spritecollideany parametresini kullanarak oyuncumuz ile düşmanlar arasında bir çakışma varmı kontrol ediyoruz. Eğer var ise player nesnemizi yok edip oyunu sonlandırıyoruz.

20-Bu adımda oyuncumuz tarafından ateşlenen mermiler ile düşmanlar arasında bir çakışma varmı bunu kontrol ediyoruz, eğer bir çakışma var ise çakışan nesneleri yok edip oyuncumuzun skoruna 1 ekliyoruz.

21-Son adım olarak skor etiketimizi ekrana çiziyoruz ve framerate yi sınırlamak için clock nesnemizi çağırıyoruz.

Kodlarımız bu kadar, oyun içerisinde kullanılan resimler ve kodların tamamına yazının başında verdiğim github linki üzerinden ulaşabilirsiniz.

Sorularınız için aşağıda yer alan yorum bölümünü kullanabilirsiniz.

Bu Kategorideki Diğer Yazılar

2 Thoughts to “Python ile Oyun Yapımı – Space Game”

  1. HOCAM Ben yaptım ama oyunu nasıl çalıştıyoruz

    1. Merhaba,
      Windows İşletim Sistemi altında ;
      Python’un kurulu olduğu dizini buluyoruz Örn : c:\Python3.1\python.exe
      Daha sonra kodumuzun olduğu dizini buluyoruz Örn : c:\users\kerem\desktop\oyun.py
      Komut Penceresini (cmd) açıyoruz ve cd komutu ile c:\Python3.1\python.exe dizinine geçiyoruz. Örn : cd c:\Python3.1\python.exe
      Daha Sonra komut satırına python c:\users\kerem\desktop\oyun.py yazarak kodumuzu çalıştırıyoruz.
      Linux İşletim Sistemi altında ;
      Kodumuzun olduğu dizini buluyoruz Örn : /home/kerem/oyun.py
      Daha sonra komut satırına python /home/kerem/oyun.py yazarak kodumuzu çalıştırıyoruz.

Leave a Comment