PyGame ile Basit Shoot’m Up Oyun Yapımı #3
Aktör Sınıfı
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.

Buraya kadar anlattığım kodun tamamını aşağıdaki linkten alabilirsiniz. Kullandığım png ve xml dosyasını da almayı unutmayın.
Bu serinin diğer yazıları için: PyGame ile Basit Shoot’m Up Oyun Yapımı