2D Platformer için Duvar Atlama


14

Ben xna oyunumda duvar atlama uygulamak için bir yol arıyordum, ama bu konuda herhangi bir bilgi bulamıyorum, birisi bana yardım edebilir misiniz?

Yanıtlar:


21

Bir oyuncu zıplarken (veya isterseniz düşüyorsa) bir duvarla çarpıştığında, bir sonraki 100 milisaniye boyunca bir bayrak açın ve böylece X ekseni üzerinde duvardan uzağa doğru makul bir hız. Aslında bir sıçrama başlatılırsa bayrağı erken kapatmayı unutmayın.


3
Sanırım ilk cümleyi değiştirmelisin: "Bir oyuncu bir duvarla çarpıştığında (zıplarken) ..." aksi takdirde oyuncu bir duvarın yanındaki zeminde sabit olmaktan atlayabiliyordu, ki bu olmayacaktı beklenen.
CiscoIPPhone

@CiscoIPPhone: Evet, teşekkürler. Bu, çarpışmadan sonraki 100 ms ve sonrasındaki garip bir davranış değişikliği yaratacaktır.
kaos

2

Dürüst olmak gerekirse sadece bir nokta kontrol yapardı. Yani:

if (falling AND left_key_pressed AND !point_free(x-1,y))
    doWallJump

Y'yi y + sprite_width / 2 (veya - koordinat sisteminize bağlı olarak) olarak değiştirmek için sprite'ınızın üst (veya alt) yerine ortasının solunu kontrol etmesini isteyebilirsiniz. Bu nasıl duvar atlama (son paragraf) için N uygular duvar denetler .

Bundan sonra duvarınızın ne kadar sıkı atlayacağına karar vermelisiniz. Atlayışınızın dikey hızı, oyuncu aynı duvara tekrar ulaşmadan yatayın üstesinden gelirse, aynı duvarı duvara atlayamazsınız ve yavaş yavaş alta geri düşer (duvar atlama ile Mario oyunlarında olduğu gibi) ). Yatayın oyuncunun duvara geri dönmesine yetecek kadar zayıf olmasına izin verirseniz, duvarda ilerleyebilir (Meat Boy'da olduğu gibi).

Bahsedilmeyen bir diğer yaklaşım Süper Metroid'lerdir. O oyunda bir duvara karşı olduğunuzda, o duvardan çıkarsanız çok kısa bir "duvardan çıkma" animasyonu oynar. Bu animasyon sırasında atlarsanız, bir duvar atlaması yaparsınız. (Süper Metroid ayrıca bir oyuncunun duvar sıçramalarını kullanarak bir duvara tırmanmasına izin verir, ancak biraz beceri gerektirir (aslında Super Metroid'de duvar atlama ile ilgili her şey adil bir beceri gerektirir ...).)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.