Oyuncularınıza, oyununuzda ilerledikçe almaları için bir şeyler verin.
Güçlendiriciler ve koleksiyon öğeleri, oyun deneyimini geliştirebilen ve atari oyunlarına heyecan katabilen temel oyun öğeleridir. Oyunculara ek yetenekler, ödüller ve zorluklar sağlarlar. Arcade kitaplığıyla, kısa sürede güçlendirmeler ve koleksiyon öğeleriyle ilgi çekici oyunlar oluşturabileceksiniz.
Basit Bir Oyun Yaratın
Temel bir kurulumla başlayın. oyuncu dört yönde hareket edebilir (sol, sağ, yukarı ve aşağı) klavye girişlerini kullanarak. Ek olarak, oyun ortamı içinde etkileşim sağlamak için bir düşman nesnesini tanıtın.
Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.
adlı yeni bir dosya oluşturun. basit oyun.py ve aşağıdaki kodu ekleyin:
içe aktarmak oyun makinesi
mavi = çarşı.renk. MAVİ
kırmızı = çarşı.renk. KIRMIZI
siyah = çarşı.renk. SİYAH
beyaz = çarşı.renk. BEYAZ
sarı = çarşı.renk. SARI
yeşil = çarşı.renk. YEŞİL
turuncu = çarşı.renk. TURUNCUsınıfoyun(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
arcade.set_background_color (siyah)self.player = çarşı. Hareketli Daire(20, mavi)
self.player.center_x = genişlik // 2
self.player.center_y = yükseklik // 2self.enemy = çarşı. SpriteSolidColor(20, 20, kırmızı)
self.enemy.center_x = genişlik // 4
self.enemy.center_y = yükseklik // 4kesinlikleon_draw(kendi):
arcade.start_render()
self.player.draw()
self.düşman.draw()kesinliklegüncelleme(öz, delta_time):
geçmekkesinlikleon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
self.player.center_x -= 10
elif anahtar == çarşı.key. SAĞ:
self.player.center_x += 10
elif anahtar == çarşı.key. YUKARI:
self.player.center_y += 10
elif anahtar == çarşı.key. AŞAĞI:
self.player.center_y -= 10kesinlikleana():
oyun = Oyun(800, 600)
çarşı.run()
eğer __isim__ == "__ana__":
ana()
Bu kodu çalıştırın ve oyuncu hareketi ve bir düşman nesnesi ile basit bir oyuna sahip olacaksınız.
Oyun Durumları Oluşturma
Güçlendirmeleri ve koleksiyonları dahil etmek için puan ve sağlık gibi oyun durumları oluşturmanız gerekir. Yapabilirsiniz skoru yönet ve sağlık ayrı bir değişken kullanarak. Bu özellikleri eklemek için kodu değiştirin. Oyuncunun sağlığı, düşman nesnesiyle çarpıştığında azalır.
sınıfoyun(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)self.puan = 0
self.sağlık = 100kesinlikleon_draw(kendi):
çarşı.draw_text(f"Puan: {self.score}", 10, 10, beyaz)
çarşı.draw_text(Sağlık: {self.sağlık}", 10, 30, beyaz)kesinliklegüncelleme(öz, delta_time):
eğer arcade.check_for_collision (self.player, self.düşman):
self.sağlık -= 10eğer self.sağlık <= 0:
self.game_over()
kesinlikleoyun bitti(kendi):
# Game Over Logic'i buraya ekleyin
geçmek
Artık oyuncunun canı düşmanla çarpıştığında 10 azalıyor, skor ve can değerleri ekranda gösteriliyor.
Koleksiyon Öğeleri Ekleme
Ardından, toplandığında oyuncunun puanını 10 artıracak koleksiyon öğeleri oluşturun. Bu koleksiyonlar, görsel çeşitlilik için farklı şekillere sahip olacak. adlı yeni bir dosya oluşturun. koleksiyon.py ve aşağıdaki güncelleme ile kodu ekleyin:
sınıfoyun(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)self.collectibles = çarşı. Karakter Listesi()
için _ içinde menzil(5):
koleksiyon = çarşı. SpriteSolidColor(20, 40, sarı)
koleksiyon.center_x = rastgele.randint(0, Genişlik)
koleksiyon.center_y = rastgele.randint(0, yükseklik)
self.collectibles.append (tahsil edilebilir)kesinlikleon_draw(kendi):
arcade.start_render()
self.player.draw()
self.düşman.draw()
self.collectibles.draw()
çarşı.draw_text(f"Puan: {self.score}", 10, 10, beyaz)
çarşı.draw_text(Sağlık: {self.sağlık}", 10, 30, beyaz)
kesinliklegüncelleme(öz, delta_time):
için tahsil edilebilir içinde self.koleksiyon ürünleri:
eğer arcade.check_for_collision (self.player, tahsil edilebilir):
self.puan += 10
koleksiyon.remove_from_sprite_lists()
Her biri sarı bir dikdörtgenle temsil edilen beş örneğe sahip bir koleksiyon listesi oluşturun. Oyuncu bir koleksiyon parçasıyla çarpıştığında puanı 10 artar ve koleksiyon nesnesi hareketli karakter listesinden kaldırılır.
Güçlendirmeler Ekleme
Artık oyununuza güçlendirmeler ekleyebilirsiniz. Oyuncu bir güçlendirme topladığında, etraflarında 10 saniye boyunca bir kalkan belirir. Bu süre zarfında, eğer oyuncu düşmanla çarpışır, düşmanı yok edecekler. adlı yeni bir dosya oluşturun. power-ups.py ve aşağıdaki güncelleme ile kodu ekleyin:
sınıfoyun(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)self.power_up = çarşı. SpriteSolidColor(50, 20, yeşil)
self.power_up.center_x = rastgele.randint(0, Genişlik)
self.power_up.center_y = rastgele.randint(0, yükseklik)self.shield_active = YANLIŞ
self.shield_duration = 10
self.shield_timer = 0kesinlikleon_draw(kendi):
arcade.start_render()
self.player.draw()
self.düşman.draw()
self.collectibles.draw()
self.power_up.draw()
çarşı.draw_text(f"Puan: {self.score}", 10, 10, beyaz)
çarşı.draw_text(Sağlık: {self.sağlık}", 10, 30, beyaz)kesinliklegüncelleme(öz, delta_time):
eğer arcade.check_for_collision (self.player, self.düşman):
eğerOlumsuz self.shield_active:
self.sağlık -= 10
eğer self.sağlık <= 0:
self.game_over()
başka:
self.enemy.remove_from_sprite_lists()eğer self.shield_active:
self.shield_timer += delta_timeeğer self.shield_timer >= self.shield_duration:
self.shield_active = YANLIŞ
self.shield_timer = 0için tahsil edilebilir içinde self.koleksiyon ürünleri:
eğer arcade.check_for_collision (self.player, tahsil edilebilir):
self.puan += 10
koleksiyon.remove_from_sprite_lists()
eğer arcade.check_for_collision (self.player, self.power_up):
self.shield_active = Doğru
self.power_up.remove_from_sprite_lists()
Çıktı aşağıdadır:
Ek Özellikler Dahil
Ek özellikler ekleyerek güçlendirme ve koleksiyon sistemini daha da geliştirebilirsiniz. Örneğin, toplandığında oyun süresini uzatan bir zamanlayıcı güçlendirme oluşturabilirsiniz. adlı yeni bir dosya oluşturun. timer-power-up.py ve aşağıdaki güncelleme ile kodu ekleyin:
sınıfoyun(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik)
arcade.set_background_color (siyah)self.player = çarşı. Hareketli Daire(20, mavi)
# ...self.timer_power_up = çarşı. SpriteSolidColor(40, 20, turuncu)
self.timer_power_up.center_x = rastgele.randint(0, Genişlik)
self.timer_power_up.center_y = rastgele.randint(0, yükseklik)self.game_time = 60# Saniye cinsinden ilk oyun süresi
self.timer_power_up_duration = 10# ...
kesinliklegüncelleme(öz, delta_time):
# ...eğer arcade.check_for_collision (self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()# ...
kesinlikleana():
oyun = Oyun(800, 600)
çarşı.run()
eğer __isim__ == "__ana__":
ana()
Güçlendirmeler ve Koleksiyon Öğeleri İçin En İyi Uygulamalar
Güçlendiriciler ve koleksiyon öğeleri, atari oyunlarının oynanış deneyimini geliştirmede çok önemli bir rol oynar. Bu öğelerin eğlenceli olmasını ve oyuna iyi bir şekilde entegre edilmesini sağlamak için bazı en iyi uygulamaları takip etmek önemlidir:
Görsel Netlik ve Tutarlılık
Diğer oyun öğelerinden öne çıkmalarını sağlamak için güçlendirmeler ve koleksiyon öğeleri için farklı ve görsel olarak çekici karakterler kullanın. Güçlendiricilerin ve koleksiyon öğelerinin görünümünün oyundaki etkileri ve amaçlarıyla uyumlu olduğundan emin olun.
Oyun boyunca güçlendirmeler ve koleksiyon öğeleri için tasarım, renk şemaları ve boyutta tutarlılığı koruyun.
Denge ve Zorluk
Oyuncular için bir meydan okuma ve ödül duygusunu sürdürmek için güçlendirmelerin ve koleksiyon öğelerinin nadirliğini ve dağıtımını ayarlayın. Onları bulmanın etkisini ve heyecanını azaltabileceğinden, çok fazla güçlendirme veya koleksiyonla ezici oyunculardan kaçının.
Güçlendirmelerin etkisini ve süresini dikkatli bir şekilde dengeleyerek aşırı güçlü olmalarını veya ezici olmalarını önleyin.
Net Göstergeler ve Geri Bildirim
Oyuncu bir güçlendirme veya koleksiyon parçası topladığında net görsel ve işitsel göstergeler sağlayın. Güçlendirmelerin aktivasyonunu ve sürelerini belirtmek için animasyonlar veya parçacıklar gibi geçici görsel efektler görüntüleyin.
Meydan Okuma-Ödül İlişkisi
Güçlendirmelerin ve koleksiyon öğelerinin oyuncuya artan puan, ek yetenekler veya uzatılmış oyun süresi gibi anlamlı ödüller sağladığından emin olun. Güçlendiriciler ve koleksiyon öğeleri elde etmenin zorluklarını sundukları avantajlarla birleştirin. Daha zorlu görevler daha değerli ödüller vermelidir.
Oyun Testi ve Dengeleme
Oyuncuların güçlendirmeler ve koleksiyon öğeleriyle nasıl etkileşime girdiğini gözlemlemek için oyunu kapsamlı bir şekilde test edin. Dengeli ve eğlenceli bir deneyim yaratmak için güçlendiricilerin ve koleksiyon öğelerinin dağıtımına, süresine ve etkilerine ince ayar yapmak için oyuncu geri bildirimlerini kullanın.
Bu en iyi uygulamaları takip ederek, oyun deneyimini geliştiren ve oyuncuların atari oyununuzla meşgul olmasını sağlayan büyüleyici ve dengeli bir güçlendirme ve koleksiyon sistemi oluşturabilirsiniz.
Güçlendirmeler ve Koleksiyon Öğeleriyle Oyunları Daha Eğlenceli Hale Getirin
Güçlendiriciler ve koleksiyon öğeleri, atari oyunlarına ekstra bir heyecan ve katılım katmanı ekler. Oyunculara yalnızca yeni yetenekler ve ödüller sağlamakla kalmaz, aynı zamanda ilginç zorluklar ve stratejik seçimler de yaratırlar.
Python Arcade kitaplığını kullanarak bu özellikleri dahil ederek oyunlarınızı daha eğlenceli hale getirebilir ve oyuncularınızın genel oyun deneyimini geliştirebilirsiniz. Oyununuzun teması ve mekaniği ile uyumlu benzersiz ve büyüleyici güçlendirmeler ve koleksiyon öğeleri oluşturmak için yaratıcılığınızı denemeyi, yinelemeyi ve serbest bırakmayı unutmayın.