Çoğu platform oyunu, çift atlama ve değişken yükseklikte atlama gibi varyasyonlarla bir tür atlama kullanır. Bu hareketlerin arkasındaki teknikleri keşfedin.
Zıplama mekaniği, bir platform oyununun oynanış deneyimini geliştirmede çok önemli bir rol oynar. Python'un Arcade Library ile çeşitli zıplama mekaniklerini uygulayarak oyunlarınıza derinlik ve heyecan katabilirsiniz.
Arcade kitaplığı, oyun oluşturmak için sezgisel ve kullanımı kolay bir çerçeve sunarak onu platform oyununuzu oluşturmak için ideal bir seçim haline getirir.
Basit Bir Oyun Yaratın
Başlamadan önce, cihazınıza pip yükleyin ve yüklemek için bu komutu kullanın. oyun makinesi modül:
pip yükleme çarşı
Zıplama mekaniğinin nasıl çalıştığını keşfetmek için, oyuncunun yerçekimi ve statik bir platform ile sola ve sağa hareket edebildiği basit bir oyun oluşturarak başlayın.
Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.
Oyunda oyuncu platformla çarpışacak ve üzerinde duracaktır. adlı yeni bir dosya oluşturun. basit oyun.py ve aşağıdaki kodu ekleyin:
içe aktarmak oyun makinesi
EKRAN_GENİŞLİK = 800
EKRAN_YÜKSEKLİK = 600
OYUNCU_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
AĞIRLIK = 0.5
mavi = çarşı.renk. MAVİ
yeşil = çarşı.renk. YEŞİLsınıfOyun Penceresi(oyun makinesi. pencere):
kesin__içinde__(kendi):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Atlama Mekaniği")
self.player_x = SCREEN_WIDTH // 2
self.player_y = SCREEN_HEIGHT // 2
self.player_dy = 0
self.platform_x = SCREEN_WIDTH // 2
self.platform_y = SCREEN_HEIGHT // 4kesinon_draw(kendi):
arcade.start_render()arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, mavi)arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, yeşil)kesinon_update(öz, delta_time):
self.player_dy -= AĞIRLIK
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2eğer self.player_y < mesafe:
self.player_y = mesafe
self.player_dy = 0
oyun = GameWindow()
çarşı.run()
Programı çalıştırdığınızda, oyuncu nesnesinin hızla platforma düştüğünü ve ardından üzerinde durduğunu göreceksiniz.
Basit Bir Atlama Özelliği Ekleme
Şimdi oyuna basit bir atlama özelliği ekleyin. Oyuncu ve platform arasındaki çarpışmayı kontrol edin ve oyuncu yukarı ok tuşuna bastığında atlama eylemini tetikler. Bunu başarmak için, adlı yeni bir dosya oluşturun. atlama.py ve aşağıdaki güncellemelere sahip kod:
sınıfOyun Penceresi(oyun makinesi. pencere):
kesin__içinde__(kendi):
# ...kesinon_key_press(self, key, değiştiriciler):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2eğer anahtar == çarşı.key. YUKARI Ve self.player_y == zeminde:
self.player_dy = 10
kesinon_update(öz, delta_time):
self.player_dy -= AĞIRLIK
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
eğer self.player_y < mesafe:
self.player_y = mesafe
self.player_dy = 0
self.jump_count = 0
Çift Atlama Özelliği Ekleme
Çift atlama özelliği eklemek için mevcut atlama mantığını genişletin. Oyuncu platforma çıkıp yukarı ok tuşuna ilk kez bastığında normal bir zıplama gerçekleştirecektir. Ancak havadayken yukarı ok tuşuna tekrar basarlarsa, oyuncu çift zıplama gerçekleştirir.
adlı yeni bir dosya oluşturun. çift atlama.py ve aşağıdaki güncellemelere sahip kod:
sınıfOyun Penceresi(oyun makinesi. pencere):
kesin__içinde__(kendi):
self.jump_count = 0# Atlama sayısını takip etkesinon_key_press(self, key, değiştiriciler):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
eğer anahtar == çarşı.key. YUKARI:
eğer self.player_y == zeminde veya self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1
Ek Özellikler Dahil
Basit ve çift zıplamaların dışında oyununuzun zıplama mekaniklerini geliştirmek için ekleyebileceğiniz birçok özellik var.
Değişken Sıçrama Yüksekliğini Uygulama
Oyuncunun atlama düğmesini ne kadar süreyle basılı tuttuğuna bağlı olarak atlamalarının yüksekliğini kontrol etmesine izin vermek, oyuna daha fazla kontrol ve strateji katabilir. İşte değişken atlama yüksekliğini nasıl uygulayabileceğinize dair bir örnek. adlı yeni bir dosya oluşturun. değişken atlama.py ve aşağıdaki güncellemelere sahip kod:
AĞIRLIK = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100sınıfOyun Penceresi(oyun makinesi. pencere):
kesin__içinde__(kendi):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Atlama Mekaniği")
self.jump_pressed = YANLIŞ
self.jump_power = 0kesinon_key_press(self, key, değiştiriciler):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2eğer anahtar == çarşı.key. YUKARI Ve self.player_y == zeminde:
self.jump_pressed = Doğrukesinon_key_release(self, key, değiştiriciler):
eğer anahtar == çarşı.key. YUKARI:
self.jump_pressed = YANLIŞkesinupdate_jump_power(kendi):
# Zıplama düğmesi basılı tutulurken atlama gücünü artırın
eğer self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENTeğer self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
başka:
eğer self.jump_power > 0:
self.jump_power -= 1kesinon_update(öz, delta_time):
self.player_dy -= AĞIRLIK
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2eğer self.player_y == mesafe Ve self.jump_power > 0:
self.player_dy = self.jump_power
self.player_y += self.player_dy
self.update_jump_power()
Air Dash Özelliğini Uygulama
Bir hava atışı mekaniği eklemek, oyuncuya havadayken ek hareketlilik seçenekleri sağlayabilir. adlı yeni bir dosya oluşturun. air-dash.py ve aşağıdaki güncellemelere sahip kod:
AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2sınıfOyun Penceresi(oyun makinesi. pencere):
kesin__içinde__(kendi):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Atlama Mekaniği")
self.on_ground = YANLIŞ
self.air_dashes = 0
self.can_air_dash = Doğrukesinon_key_press(self, key, değiştiriciler):
eğer anahtar == çarşı.key. YUKARI Ve self.on_ground:
self.player_dy = 10
elif anahtar == çarşı.key. YUKARI Ve \
self.air_dashes < MAX_AIR_DASHES Ve \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dashes += 1
self.can_air_dash = YANLIŞkesinon_update(öz, delta_time):
self.player_dy -= AĞIRLIK
self.player_y += self.player_dydist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2
eğer self.player_y <= mesafe:
self.player_y = mesafe
self.player_dy = 0
self.on_ground = Doğru
başka:
self.on_ground = YANLIŞself.player_x += self.player_dx
eğer self.player_x < PLAYER_RADIUS:
self.player_x = OYUNCU_RADIUS
self.player_dx = 0
elif self.player_x > SCREEN_WIDTH - PLAYER_RADIUS:
self.player_x = SCREEN_WIDTH - PLAYER_RADIUS
self.player_dx = 0
eğer self.on_ground:
self.air_dashes = 0
self.can_air_dash = Doğru
Hava saldırısı yaptığınızda, oyuncu karakteriniz platformdan uzaklaşacaktır:
Zıplama Mekaniği İçin En İyi Uygulamalar
Bir oyunda atlama mekaniğini uygulamak, sorunsuz ve keyifli bir oyun deneyimi sağlamak için dikkatli bir değerlendirme gerektirir. Akılda tutulması gereken bazı en iyi uygulamalar şunlardır:
Denge Sıçrama Yüksekliği ve Süresi
Gerçekçilik duygusunu ve oyun zorluğunu korumak için atlama yüksekliği ve süresini dengelemek önemlidir. Çok yüksek veya çok kısa bir sıçrama oyunu olumsuz etkileyebilir. Oyununuz için doğru dengeyi bulmak için farklı atlama yükseklikleri ve süreleri ile denemeler yapın.
Uygun atlama mekaniğini belirlerken oyunun fiziğini, karakter yeteneklerini ve genel seviye tasarımını göz önünde bulundurun.
Görsel ve Sesli Geri Bildirim Sağlayın
Görsel ve sesli geri bildirim, atlamaların duyarlı ve tatmin edici hissettirmesi için çok önemlidir. Oyuncunun zıplama hareketini ve inişini tasvir etmek için animasyonlar veya parçacık efektleri kullanın.
Ek olarak, düşünün ses efektleri veya arka plan müziği ekleme Bu, atlama deneyimini geliştirir. Bu görsel ve işitsel ipuçları, oyuncuların oyunun içine dalmasına ve katılım sağlamasına katkıda bulunur.
İnce Ayarlı Çarpışma Tespiti
Oyuncu ve platformlar arasındaki doğru çarpışma tespiti, hassas ve güvenilir atlama mekaniği için çok önemlidir. Çarpışma algılama algoritmasının sağlam olduğundan ve bir platforma iniş, engellerle çarpışma veya duvarlar boyunca kayma gibi çeşitli senaryoları düzgün şekilde işlediğinden emin olun.
Atlama mekaniğini etkileyebilecek aksaklıkları veya tutarsızlıkları ortadan kaldırmak için çarpışma algılama kodunuzu test edin ve yineleyin.
Zıplama Mekaniği ile Oyunları Daha Eğlenceli Hale Getirin
Zıplama mekaniğinin eklenmesi, bir oyunun katılımını ve zevkini büyük ölçüde artırabilir. Seviye tasarımı, bulmacalar ve zorlu engeller için yeni olanaklar sunuyor. Python'un Arcade Oyun Kitaplığı'nda farklı atlama mekaniklerini uygulayarak, oyuncuları saatlerce eğlendiren büyüleyici platform oyunları oluşturabilirsiniz.
Unutmayın, farklı zıplama mekaniklerini denemek ve benzersiz özellikler eklemek, oyununuzu diğerlerinden ayırabilir ve oyuncular için sürükleyici ve akılda kalıcı bir deneyim haline getirebilir.