Oyuncuyu merdivenlere düzgünce koştur


11

Oyuncunun Daima sağa doğru çalıştığı bir 2D Platform oyunum var, ancak arazi Her zaman yatay değil. Misal:

Bir örnek

Oyuncu kutusu ve diğer bloklarla kavşakları kontrol eden, büyük bir blokla karşılaşırsanız oyuncunun çalışmasını durdurmak için sınırlayıcı bir çarpışma sistemi uyguladım, böylece atlamanız gerekiyor, ancak merdiven koyduğumda onu istiyorum yatay zeminde olduğu gibi sorunsuz bir şekilde koş. Çarpışma sistemi ile onları geçmek için merdiven atlamak zorunda!

Merdivenlerin kenarları arasında bir çizgi oluşturmayı ve oyuncu hareketini bu çizgiye dayatmayı düşündüm ... Ne düşünüyorsun? Yapılacak daha akıllıca bir şey var mı?

Burası gibi

Yanıtlar:


11

Sınırlayıcı kutuları döndürebilirseniz, oyuncunun ayaklarına 45 derece döndürülmüş bir kutu koyar ve vücudun geri kalanını temsil etmek için döndürülmemiş bir kutu ile birleştirirdim. Bu, oynatıcının otomatik olarak yeterince küçük bir şey üzerinde kayabilmesini sağlayabilir.

Yine de, bu muhtemelen oyuncu modeli ve merdivenlerle bir miktar kırpmaya neden olacaktır.

Başka bir fikir, karakterin kafasından bir sınırlayıcı kutuyu karakterin kutusundan daha geniş genişliğe koymaktır.

Oyuncu, 'A' kutusunun yapmadığı bir şeyle çarpıştığında, oynatıcıyı çarpıştığı şeyin üstüne taşıyabilirsiniz.

_________________
|    |     |    |
|    |     |    |
|  A | pla | A  |
|____| yer |____|
     |     | _________________________ <- step 
     |     | |      
--------------------------------------------- <- ground

12

Video oyunlarında merdivenlerle başa çıkmanın üç genel yaklaşımı vardır:

"Mario" yaklaşımı merdivenlerden yukarı çıkmak için atlamak zorunda olmasıdır.

"Castlevania" yaklaşımı merdivenleri yukarı / aşağı hareket ettirmenin farklı bir hareket biçimi olduğudur; kumandadaki 'yukarı' tuşuna basmanız gerekir ve merdivenlerden geçmek için özel bir "merdiven çıkma" animasyonu oynatılır. Bunun bir varyantı, yukarı / aşağı merdivenleri hareket ettirmenin, oyuncu bir etkileşim düğmesine bastığında oynayan tam bir cutscene olarak kabul edildiği "Resident Evil" yaklaşımıdır; hiçbir etkileşimli merdiven çıkmaya izin verilmez.

"Hemen Herkes Başka" yaklaşımı, bahsettiğiniz yaklaşımdır: merdivenlere sanki bir rampa gibi davranın. Ne tür bir oyuna bağlı olarak, rampayı merdivenlere göre farklı yüksekliklere yerleştirmek isteyebilirsiniz. Tipik bir 2D oyunda, "merdivenler aslında bir rampadır" hilesi, rampa her merdiven basamağının alt köşeleri ile aynı seviyedeyse oyuncu için daha az fark edilirken, 3D oyunda rampa düz ise genellikle daha az fark edilir Her adımın üst köşeleri ile. (bir 2D oyunda olduğu gibi, bir karakterin ayaklarının yerden yükselip yükselmediğini fark etmek daha kolaydır ve bu yüzden bunu en aza indirmek istersiniz, oysa bir 3D oyunda bir karakterin ayaklarının yerden geçip geçmediğini fark etmek daha kolaydır ve böylece bunu en aza indirmek istiyorum).


Farklı grafik bakış açılarında float / kırpma üzerine büyük açıklama.
Kroltan

Bilgileriniz biraz yanlış. Sadece eski mario oyunlarında merdivenlerden çıkmak için atlamak zorundasınız. Ama sanırım bu çok açık. Ancak ikamet kötülük kesinlikle interaktif olarak tırmanılabilir merdiven vardı!
Tara

4

Karşılaştığım yöntemlerin çoğu yukarıda zaten belirtildi - ancak hala belirtilmemiş bir tane daha var. Oyuncu yeterince kısa olan dikey bir engelle karşılaştığında (örneğin, yüksekliğinin 1 / 3'ü), onları en üste koyun. Örneğin Minecraft ve Source motoru bu yaklaşımı bu tür bir durumda benimser. Buna ek olarak, bu yöntem, oyuncuyu sürekli merdivenlerden atlamak zorunda kalmadan acı çekmeden tüm fizik için saf AABB'yi kullanmanıza izin verir.


1
Bu tür engelleri nasıl tespit edeceğinizi açıklarsanız iyi olur.
Tara

0

Şu anda bir motorun benzer bir parçası üzerinde çalışıyorum ve merdiven / yamaçlarla uğraştığım yol rampa dokumdaki şeffaf pikselleri sayıp oyuncunun nesnesini bulunan miktarla dengelemek.

Bu makalede ayrıntıları verilen yükseklik haritası fikrine benzer: http://info.sonicretro.org/SPG:Solid_Tiles#Slopes_And_Curves

Gerçekten bunu yapmak isteyeceğinizi düşünüyorum ve merdivenlerin yükselişine göre oynayan farklı bir animasyon oynamayı seçebilirsiniz.

Bu makalede farklı eğim kavramlarına da iyi bir genel bakış bulunmaktadır: http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/

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.