Skorsuz bir maçın ne anlamı var? Bazıları onsuz yapabilir, ancak oluşturacağınız çoğu oyunun oyuncuya ne kadar iyi performans gösterdiğini söylemesi gerekir.

Puanlar, oyuncular için bir ilerleme ve başarı ölçüsü sağladıkları için birçok oyunun ayrılmaz bir parçasıdır.

Python'da Arcade kitaplığı, oyunlardaki puanları yönetmenin basit ve verimli bir yolunu sunar. Skorları etkin bir şekilde yöneterek kullanıcı katılımını artırabilir ve daha sürükleyici bir oyun deneyimi sağlayabilirsiniz.

Basit Bir Oyun Yaratın

Başlamadan önce, sahip olduğunuzdan emin olun. cihazınızda yüklü pip. Arcade kitaplığını yüklemek için bu komutu kullanın:

pip yükleme çarşı

Şimdi, Python'un Arcade kitaplığını kullanarak basit bir oyun oluşturun.

Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.

Bu oyunda oyuncu aynı y eksenine bir engel yerleştirilirken ok tuşlarını kullanarak sola ve sağa hareket edebilir.

içe aktarmak oyun makinesi

# Pencere boyutlarını ayarlayın
EKRAN_GENİŞLİK = 800
EKRAN_YÜKSEKLİK = 600

instagram viewer

sınıfBenim oyunum(oyun makinesi. pencere):
kesin__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
self.player_x = genişlik // 3
self.puan = 0

kesinon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
self.player_x -= 10
elif anahtar == çarşı.key. SAĞ:
self.player_x += 10

kesingüncelleme(öz, delta_time):
# Oyun mantığını buradan güncelleyin
geçmek

kesinon_draw(kendi):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, çarşı.renk. MAVİ)
çarşı.draw_rectangle_filled(400, 50, 100, 50, çarşı.renk. KIRMIZI)

kesinana():
oyun = Oyunum (SCREEN_WIDTH, SCREEN_HEIGHT)
çarşı.run()

eğer __isim__ == "__ana__":
ana()

Puan Takibi ve Hesaplama

Oyununuzdaki skoru takip etmek için, belirli bir koşul karşılandığında skoru artıran bir mekanizma oluşturabilirsiniz. Örneğin, puan ne zaman artsa oyuncu oyununuzda hareket eder ve başarıyla engele dokunur. değiştirebilirsiniz güncelleme puan hesaplama mantığını dahil etme yöntemi:

sınıfBenim oyunum(oyun makinesi. pencere):
kesin__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
self.player_x = genişlik // 3
self.puan = 0

kesinon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
self.player_x -= 10
elif anahtar == çarşı.key. SAĞ:
self.player_x += 10

kesingüncelleme(öz, delta_time):
eğer self.player_x > 330Ve self.player_x < 470:
self.puan += 1

Puanı Görüntüleme

Skoru oyuncuya göstermek için, on_draw bir metin işlemeyi dahil etme yöntemi:

sınıfBenim oyunum(oyun makinesi. pencere):
# ...

kesinon_draw(kendi):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, çarşı.renk. MAVİ)
çarşı.draw_rectangle_filled(400, 300, 100, 50, çarşı.renk. KIRMIZI)

skor_metni = f"Puan: {self.score}"
arcade.draw_text (score_text, 10, 10, çarşı.renk. BEYAZ, 14)

Yukarıdaki kodu ekleyerek skoru oyun penceresinin sol alt köşesinde görüntüleyebilirsiniz.

Yüksek Puanı Kaydetme

Oyuncular için bir başarı ve rekabet duygusu sağlamak için, yüksek puanı saklamak ve görüntülemek çok önemlidir. Bunun için basit bir dosya tabanlı yaklaşım kullanabilirsiniz.

Kullan load_high_score adlı bir dosyadan yüksek puanı okuma yöntemi high_score.txt ve iade edin. Bundan sonra, yeni yüksek puanı kullanarak dosyaya kaydedebilirsiniz. save_high_score yöntem.

sınıfBenim oyunum(oyun makinesi. pencere):
kesin__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
self.player_x = genişlik // 3
self.puan = 0
self.high_score = self.load_high_score()

kesinload_high_score(kendi):
denemek:
ile açık("high_score.txt", "R") gibi dosya:
geri dönmek int (dosya.read())
hariç FileNotFoundError:
geri dönmek0

kesinsave_high_score(kendi):
ile açık("high_score.txt", "w") gibi dosya:
file.write (str (self.high_score))

kesingüncelleme(öz, delta_time):
# ...

eğer self.score > self.high_score:
self.high_score = self.score
self.save_high_score()

Yüksek Skor Görüntüleniyor

Geçerli puanı görüntülemeye benzer şekilde, yüksek puanı görüntülemek için bir metin işleme ekleyebilirsiniz:

sınıfBenim oyunum(oyun makinesi. pencere):
# ...

kesinon_draw(kendi):
# ...

high_score_text = f"Yüksek Puan: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, çarşı.renk. BEYAZ, 14)

Yukarıdaki kodu dahil ederek on_draw yönteminde, mevcut puanın hemen üzerinde yüksek puanı görüntüleyebilirsiniz.

Ek Özellikler Dahil

Oyunlardaki puanları yönetmek, genellikle oyunu daha ilgi çekici ve dinamik hale getirmek için ek özellikler eklemeyi içerir. Oyununuzda puan yönetiminin yanı sıra ek özellikleri nasıl tanıtabileceğinize dair bazı örnekleri inceleyelim.

Güç kaynağını çalıştırın

Güçlendirmeler, oyunculara geçici avantajlar veya bonus puanlar sağlayan özel öğelerdir. Oluşturduğunuz bir activ_power_up gücün etkinleştirilmesini tetikleyen yöntem, power_up_active True olarak işaretleyin.

programlayabilirsiniz devre dışı bırakma_güçlendirme kullanarak belirli bir süre (örn. 10 saniye) sonra çalıştırmak için yöntem arcade.schedule işlev. Güçlendirmenin etkin olduğu süre boyunca, Apply_power_up_effects belirli oyun geliştirmelerini uygulama yöntemi.

İşte oyununuzda bir güçlendirme özelliğinin uygulanmasına bir örnek.

sınıfBenim oyunum(oyun makinesi. pencere):
kesin__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
self.player_x = genişlik // 3
self.puan = 0
self.power_up_active = YANLIŞ

kesingüncelleme(öz, delta_time):
eğer self.power_up_active:
# Oyun sırasında güçlendirme efektleri uygulayın
self.apply_power_up_effects()
self.puan += 10

kesinApply_power_up_effects(kendi):
# Açılışa özgü mantığı buraya ekleyin
geçmek

kesinactiv_power_up(kendi):
self.power_up_active = Doğru
# Güç açma efekti için bir zamanlayıcı veya süre ayarlayın
arcade.schedule (self.deactive_power_up, 10.0)

kesindevre dışı bırakma_güçlendirme(öz, delta_time):
self.power_up_active = YANLIŞ

Birleşik Sistem

Birleşik bir sistem, oyuncuları ardışık başarılı eylemler veya puan çarpanları elde ettikleri için ödüllendirir. Oluşturduğunuz bir artır_kombo_sayaç kombo sayacını artıran ve geçerli kombo seviyesine göre puanı artıran yöntem.

arayabilirsin reset_combo_counter yöntemini kullanın ve başarısız bir eylem gerçekleştiğinde açılan sayacı sıfırlayın. İşte birleşik sistemin basit bir uygulaması:

sınıfBenim oyunum(oyun makinesi. pencere):
kesin__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
self.player_x = genişlik // 3
self.puan = 0
self.combo_counter = 0

kesingüncelleme(öz, delta_time):
# Başarılı eylemleri kontrol edin
eğer self.check_successful_action():
self.increase_combo_counter()
başka:
self.reset_combo_counter()

kesinartır_kombo_sayaç(kendi):
self.combo_counter += 1
self.score += self.combo_counter

kesinreset_combo_counter(kendi):
self.combo_counter = 0

Güçlendirmeler ve kombo sistemler gibi ek özellikler ekleyerek oyununuza derinlik ve heyecan katabilir, oyunculara performanslarını iyileştirmeleri, eylemlerini stratejilendirmeleri ve daha yüksek başarı elde etmeleri için ekstra teşvikler sağlamak puanlar.

Skor Yönetimi İçin En İyi Uygulamalar

Oyunlardaki skorları yönetmek söz konusu olduğunda, en iyi uygulamaları takip etmek, oyuncular için daha keyifli ve ilgi çekici bir deneyim oluşturmaya yardımcı olabilir. Dikkate alınması gereken bazı temel uygulamalar şunlardır:

Anlamlı Puanlama Mekanizmaları

Oyunun hedefleriyle uyumlu ve oyunculara anlamlı geri bildirim sağlayan puanlama mekanizmaları tasarlayın. Puanlama sistemi, oyuncunun oyun içindeki ilerlemesini, becerisini ve başarılarını yansıtmalıdır.

Zorluklarına veya oyundaki önemlerine göre farklı eylemlere veya olaylara farklı puan değerleri atamayı düşünün.

Görsel Geribildirim

Puan değiştiğinde oyunculara görsel geri bildirim sağlayın. Bunu ekran bildirimleri, animasyonlar veya parçacık efektleri aracılığıyla başarabilirsiniz. Görsel ipuçları bir başarı duygusu yaratır ve oyuncunun hareketlerini güçlendirerek oyunla olan bağlılıklarını artırır.

Ses Efektleri ve Animasyonlar

Firma kurmak oyununuzda ses efektleri deneyimi daha sürükleyici hale getirmek için puan güncellemeleriyle ilgili. Örneğin, oyuncu önemli bir dönüm noktasına ulaştığında bir kutlama ses efekti çalın veya bir konfeti patlaması gösterin. Bu görsel-işitsel öğeler heyecan katıyor ve oyuncular için olumlu geri bildirim döngüsünü güçlendiriyor.

Dengeleme Zorluğu ve Puan Ölçeklendirme

Zorluk ve puan ölçekleme arasında dengeli bir ilişki sağlayın. Oyuncular oyunda ilerledikçe veya daha zorlu engellerle karşılaştıkça puanlama sistemini buna göre ayarlayın. Skoru oyunun zorluk eğrisine göre ölçeklendirmek, oyuncular için adil ve ödüllendirici bir deneyim sağlamaya yardımcı olur.

Bu en iyi uygulamalara bağlı kalarak oyununuzun puanlarını etkili bir şekilde yönetebilir, oyunculara anlamlı geri bildirimler sağlayabilir ve ödüllendirici ve ilgi çekici bir deneyim oluşturabilirsiniz.

Skor Takibi ile Oyun Etkileşimini İyileştirin

Oyununuzda skor izlemeyi uygulayarak oyuncu katılımını önemli ölçüde artırabilirsiniz. Puanlar bir başarı duygusu sağlar, tekrar oynanabilirliği teşvik eder ve oyuncular arasında rekabeti teşvik eder.

Puanları belirgin bir şekilde görüntüleyin ve yüksek başarıları ödüllendirin; oyuncuları daha iyi performans için çabalamaya ve becerilerini geliştirmeye motive edeceksiniz.