PyGame ile Basit Shoot’m Up Oyun Yapımı #3

Aktör Sınıfı

Ace Snork
Ace Snork
Sep 7, 2018 · 2 min read

Bu oyunda bol miktarda sprite kullanacağım. Spritelar için ayrı bir sınıf tanımlamak daha iyi olacak gibi. Bunun için PyGame’in sprite sınıfından türettiğim Aktör sınıfını kullanacağım.

Constructor metodunun başında super().__init__() Sprite sınıfının sınıfının constructor metodunu çağırdım. Bunu en başta yapmak unutmamak için önemli. Bunun haricinde hareket hesabında kullanacağım yatay ve dikey hızlar için dx ve dy özellikleri ile, resim datasını ve sprite’ın boyutlarını saklayacağım image ve rect özelliklerini tanımlıyorum.

Sprite’ın basılacağı koordinatlar koordinatları update() methodu içinde hesaplayacağım. Buna daha sonra değineceğim. Dikkat ederseniz dx kadar hareket ettirdikten sonra dx’i sıfırladım. Update PyGame içinde önemli bir method. Bir de dx ile dy değerlerini değiştirdiğim hareket metodlarım var.

Son olarak sprite’ı istediğim koordinatlara doğrudan yerleştiren için bir de set_pos() metodu yazdım.

player nesnemi tanımladım. player.set_pos(190, 500) ile ekranın altında istediğim yere getirdim ve sprite_list grubuna ekledim. Nerden çıktı bu sprite_list grubu? pygame.sprite.Group sınıfı birdan çok sprite’ı bir arada tutmaya yarıyor. Bu sayede aynı grup içinde sprite’lar üzerinde toplu olarak işlem yapabiliyoruz.

Artık biraz hareket eklemenin vakti geldi de geçiyor. QUIT olayını kontrol ettikten sonra klavye girişlerini kontrol eden kodumu yerleştiriyorum. Bu aşamada sadece hareket methodlarını çalıştırmam yeterli. player.update() metodunu daha sonra çağıracağım.

Biraz daha hareket eklemek için arka ekran ekledim. (Aynı resmi tekrar tekrar kopyalayacak ekranı doldurdum.)

sprite_list.update() komutu gruptaki bütün sprite’ların update methodlarını sırayla çalıştıyor. sprite_list.draw(secreen) methoduyla da bütün spritelar screen yüzeyi üzerine kopyalanıyor.

Hazır başlamışken bir de arka ekran görüntüsü ekleyeyim.



Bu serinin diğer yazıları için: PyGame ile Basit Shoot’m Up Oyun Yapımı

Ace Snork

Written by

Ace Snork

Amatör yazılımcı, eski bilgisayarlar meraklısı, gürültülü müzik dinleyicisi

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade