Arcade kitaplığının klavye ve fare etkinlikleriyle, ana karakterinizin oyuncu girdilerine göre hareket etmesini sağlayın.

Arcade, 2B atari oyunları oluşturmak için kullanabileceğiniz popüler bir Python kitaplığıdır. Python ile oyun oluşturmak için basit bir çerçeve sağlayan, kullanımı kolay bir kitaplıktır.

Herhangi bir oyunun temel bileşenlerinden biri oyuncu hareketidir.

Arcade'de Basit Bir Oyun Yaratmak

eksiksiz bulabilirsiniz bu GitHub deposundaki kod.

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 kurulum kitaplığı

Bundan sonra, sınıfın alt sınıfı olarak bir Player sınıfı oluşturun. oyun makinesi. karakter sınıf ve bir Benim oyunum bir alt sınıf olarak sınıf oyun makinesi. pencere. bu Benim oyunum class, oyun nesnelerini ayarlamak, bunları ekranda işlemek, oyun durumunu güncellemek ve kullanıcı girdilerini işlemek için yöntemlere sahip olacaktır. Oyun ekranı ve oyuncu nesnesini oluşturma kodu aşağıdaki gibidir:

instagram viewer
içe aktarmak oyun makinesi

EKRAN_GENİŞLİK = 800
EKRAN_YÜKSEKLİK = 600

sınıfoyuncu(oyun makinesi. karakter):
kesin__içinde__(kendi):
süper().__init__("oyuncu.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

sınıfBenim oyunum(oyun makinesi. pencere):
kesin__içinde__(kendi):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Benim oyunum")
self.player = Hiçbiri
arcade.set_background_color (arcade.color. SİYAH)

kesinkurmak(kendi):
self.player = Oyuncu()

kesinon_draw(kendi):
arcade.start_render()
self.player.draw()

kesingüncelleme(öz, delta_time):
geçmek

MyGame().run()

Klavye Girişiyle Oyuncu Hareketi Ekleme

Artık oyun ekranını ve oyuncu nesnesini oluşturduğunuza göre, klavye girişine göre oyuncuyu hareket ettirebilirsiniz. tanımla on_key_press() Ve on_key_release() oynatıcı bir tuşa bastığında veya bıraktığında çağıracağınız yöntemler.

kesinon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
self.player.change_x = -5
elif anahtar == çarşı.key. SAĞ:
self.player.change_x = 5
elif anahtar == çarşı.key. YUKARI:
self.player.change_y = 5
elif anahtar == çarşı.key. AŞAĞI:
self.player.change_y = -5

kesinon_key_release(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL veya anahtar == çarşı.key. SAĞ:
self.player.change_x = 0
elif anahtar == çarşı.key. YUKARI veya anahtar == çarşı.key. AŞAĞI:
self.player.change_y = 0

Klavye girişleriyle oyuncu hareketi eklerken, oyuncuya atanan değeri değiştirerek hareket hızını özelleştirebilirsiniz. self.player.change_x Ve self.player.change_y. Oyun ekranında oyuncu hareketini kısıtlamak için koşullar da ekleyebilirsiniz.

Fare Girişiyle Oyuncu Hareketi Ekleme

Klavye girişlerine ek olarak, fare girişini kullanarak oyuncu hareketi de ekleyebilirsiniz. tanımla on_mouse_motion() oyuncu fareyi hareket ettirdiğinde çalışacak olan yöntem. Yöntemin içinde, merkez_x Ve merkez_y oynatıcı nesnesinin özelliklerini geçerli fare konumuna getirir.

kesinon_mouse_motion(öz, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Fare girişiyle oyuncu hareketi eklerken, kullanıcı faresini tıklattığında veya basılı tuttuğunda oynatıcı nesnesinin davranışını aşağıdaki gibi yöntemler tanımlayarak özelleştirebilirsiniz. on_mouse_press() veya on_mouse_drag(). Oyun mekaniğine bağlı olarak ateş etme veya zıplama gibi oyuncu hareketlerini tetiklemek için bu yöntemleri kullanabilirsiniz.

Ek Özellikler Tanıtımı

Hızlanma ve yavaşlamayı hesaba katarak oyuncu hareketini daha da geliştirebilirsiniz. Değiştirmek on_key_press() çıkarma veya ekleme yöntemi değişiklik_x Ve değiştir_y hareket yönüne bağlı olarak oyuncu nesnesinin özellikleri. Ayrıca değişiklik_x Ve değiştir_y özellikleri 0 olarak on_key_release() yöntem, daha önce olduğu gibi.

kesinon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL:
self.player.change_x -= 5
elif anahtar == çarşı.key. SAĞ:
self.player.change_x += 5
elif anahtar == çarşı.key. YUKARI:
self.player.change_y += 5
elif anahtar == çarşı.key. AŞAĞI:
self.player.change_y -= 5

kesinon_key_release(self, key, değiştiriciler):
eğer anahtar == çarşı.key. SOL veya anahtar == çarşı.key. SAĞ:
self.player.change_x = 0
elif anahtar == çarşı.key. YUKARI veya anahtar == çarşı.key. AŞAĞI:
self.player.change_y = 0

Tıpkı PyGame gibi, şunları da yapabilirsiniz: oynatıcı nesnesi arasına çarpışma tespiti ekleyin ve atari salonundaki düşmanlar veya engeller gibi diğer oyun nesneleri. Aşağıdaki kodu ekleyerek bunu başarabilirsiniz. güncelleme() yöntemi Benim oyunum sınıf:

kesingüncelleme(öz, delta_time):
self.player.update()

# Oyuncu ve diğer oyun nesneleri arasındaki çarpışmaları kontrol edin
çarpışmalar = arcade.check_for_collision_with_list (self.player, self.enemy_list)

için çarpışma içinde çarpışmalar:
çarpışma.kill()

Etkileşimli Oyuncu Hareketi ile İlgi Çekici Oyunlar Yapın

Etkileşimli oyuncu hareketi, ilgi çekici herhangi bir oyunun çok önemli bir yönüdür. Zıplama, koşma, uçma ve kayma gibi farklı hareket mekaniklerinin kullanılması oyuna çeşitlilik ve heyecan katabilir.

Oyunculara hareketleri üzerinde kontrol vermek, daha tatmin edici bir oyun deneyimine yol açabilecek bir temsil ve daldırma duygusu ekler.