Girdiye yanıt vermek, herhangi bir oyun için hayati önem taşır ve klavyeyi tercih eden kullanıcılar için desteklemek iyidir. Python'un arcade kitaplığı ile nasıl olduğunu öğrenin.
Klavye girişi, oyun geliştirmenin önemli bir parçasıdır ve harika bir kullanıcı deneyimi sağlamak için bunu etkili bir şekilde ele almak çok önemlidir. Arcade kitaplığı, Python oyunlarınızda klavye girişini işlemek için basit ve verimli bir yol sağlar.
Bir Oyuncuyla Basit Bir Oyun Yaratmak
Kodun tamamını şurada bulabilirsiniz: bu GitHub deposu.
Klavye girişlerini işlemeye dalmadan önce, elinizde olduğundan emin olun. cihazınızda yüklü pip. Arcade kitaplığını yüklemek için bu komutu kullanın:
pip yükleme çarşı
Bundan sonra basit bir oyunun iskeletini oluşturun:
içe aktarmak oyun makinesi
EKRAN_GENİŞLİK = 640
EKRAN_YÜKSEKLİK = 480sınıfBenim oyunum(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik, "Benim oyunum")
arcade.set_background_color (arcade.color. BEYAZ)kesinlikleon_draw(kendi):
arcade.start_render()kesinliklegüncelleme(öz, delta_time):
geçmek
Oyunum (SCREEN_WIDTH, SCREEN_HEIGHT)
çarşı.run()
Bu, beyaz arka plana sahip bir pencere oluşturur. Ardından, oyununuza bir oyuncu ekleyin:
sınıfoyuncu:
kesinlikle__içinde__(öz, x, y):
self.x = x
self.y = y
öz.hız = 5
self.yarıçap = 20kesinlikleçizmek(kendi):
arcade.draw_circle_filled (self.x, self.y, self.radius, arcade.color. MAVİ)kesinlikleSola hareket et(kendi):
self.x - = self.hızkesinliklesağa hareket et(kendi):
self.x += self.hızkesinlikleyukarı taşı(kendi):
self.y += self.hız
kesinlikleaşağı inmek(kendi):
self.y - = self.hız
Bu, mavi daireli basit bir oyuncu oluşturur. Değiştirerek bu oyuncuyu oyununuza ekleyebilirsiniz. Benim oyunum sınıf:
içe aktarmak oyun makinesi
EKRAN_GENİŞLİK = 640
EKRAN_YÜKSEKLİK = 480sınıfBenim oyunum(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik):
super().__init__(genişlik, yükseklik, "Benim oyunum")
arcade.set_background_color (arcade.color. BEYAZ)
self.player = Oyuncu (SCREEN_WIDTH // 2EKRAN_YÜKSEKLİK // 2)kesinlikleon_draw(kendi):
arcade.start_render()
self.player.draw()kesinliklegüncelleme(öz, delta_time):
geçmekkesinlikleana():
Oyunum (SCREEN_WIDTH, SCREEN_HEIGHT)
çarşı.run()
eğer __isim__ == "__ana__":
ana()
Artık oyununuzda ekranda çizebileceğiniz bir oyuncu var.
Tuş Basımlarına ve Bırakmalarına Yanıt Verme
Oyununuzdaki kullanıcı girişlerine yanıt vermek için, tuşlara basma ve bırakma işlemlerini yapmanız gerekir. Arcade kitaplığı, bu olayları işlemek için iki yöntem sağlar: on_key_press Ve on_key_release.
Bu yöntemleri kullanmak için, bunları kendi sayfanızda tanımlamanız gerekir. oyun makinesi. pencere alt sınıf. Oyuncu bir tuşa bastığında veya bıraktığında, arcade karşılık gelen yöntemi çalıştıracak ve ona iki argüman iletecektir: tuş ve değiştiriciler. anahtar basılan veya bırakılan tuşun tuş kodunu temsil eden bir tamsayıdır. değiştiriciler Shift veya Control gibi oynatıcının da bastığı tüm değiştirici tuşları temsil eden bir bit alanıdır.
Oyununuzdaki bir tuşa basmaya nasıl yanıt vereceğinize dair bir örnek:
sınıfBenim oyunum(oyun makinesi. pencere):
kesinlikleon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
# Oyuncuyu sola taşı
elif anahtar == çarşı.key. SAĞ:
# Oyuncuyu sağa taşı
elif anahtar == çarşı.key. YUKARI:
# Oyuncuyu yukarı taşı
elif anahtar == çarşı.key. AŞAĞI:
# Oyuncuyu aşağı taşı
Tuş yayınlarına yanıt vermek için, on_key_release yöntem aynı şekilde:
sınıfBenim oyunum(oyun makinesi. pencere):
kesinlikleon_key_release(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
# Oyuncuyu sola kaydırmayı durdur
elif anahtar == çarşı.key. SAĞ:
# Oyuncuyu sağa hareket ettirmeyi bırak
elif anahtar == çarşı.key. YUKARI:
# Oyuncuyu yukarı taşımayı durdur
elif anahtar == çarşı.key. AŞAĞI:
# Oyuncuyu aşağı indirmeyi bırak
yakalamaya dikkat etmek önemlidir. pygame'de kullanıcı girişi oyun döngünüzde manuel olay kontrolü gerektirir. Öte yandan, Arcade kitaplığı, oyuncu bir tuşa bastığında veya bir tuşa bastığında ilgili yöntemleri otomatik olarak çağırır. Bu, oyun döngünüzdeki önemli olayları manuel olarak kontrol etmeniz gerekmediği anlamına gelir ve sizi ekstra kod zahmetinden kurtarır.
Klavye Giriş İşlemlerini Oyununuzun İhtiyaçlarına Uyacak Şekilde Özelleştirme
Arcade kitaplığı, klavye girişini özelleştirmek için birçok yol sağlar. Oyununuz için tuş atamalarını değiştirmek veya oyuncunun kendi tuş atamalarını özelleştirmesine izin vermek isteyebilirsiniz.
Bunu bir sözlük tanımlayarak yapabilirsiniz. key_map bu, her anahtarı oynatıcı nesnesinin karşılık gelen yöntemiyle eşler. Oynatıcının tuş atamalarını özelleştirmesine izin vermek için, ayarları değiştiren bir ayarlar menüsü ekleyebilirsiniz. key_map oyuncunun tercihlerine göre sözlük.
İşte bir örnek:
sınıfBenim oyunum(oyun makinesi. pencere):
kesinlikle__içinde__(öz, genişlik, yükseklik, başlık):
super().__init__(genişlik, yükseklik, başlık)
self.player = Oyuncu(100, 100)self.key_map = {
arcade.key. SOL: self.player.move_left,
arcade.key. SAĞ: self.player.move_right,
arcade.key. YUKARI: self.player.move_up,
arcade.key. AŞAĞI: self.player.move_down
}kesinlikleon_key_press(self, key, değiştiriciler):
eğer anahtar içinde self.key_map:
self.key_map[anahtar]()
kesinlikleon_key_release(self, key, değiştiriciler):
eğer anahtar içinde self.key_map:
self.key_map[anahtar + 1]()
Kullanıcı Girişlerine Gerçek Zamanlı Yanıt Verin
Kullanıcı girişine gerçek zamanlı olarak yanıt vermek, ilgi çekici bir oyun yaratmanın önemli bir yönüdür. Oyununuzda klavye girişini düzgün bir şekilde işlemek için zaman ayırarak, daha ilgi çekici ve oyuncularınız için sürükleyici bir deneyim ve sonuçta oyununuzu kalabalık bir ortamda öne çıkarın pazar yeri.