Çıkıntıları nasıl tespit ederim?


18

Oyunumda, karakterimin çıkıntıları tutup tutabilmesini ve yapacak yer varsa kendilerini yukarı çekebilmesini istiyorum.

Bir çıkıntının olup olmadığını ve karakterin tırmanmak için yeterli alana sahip olup olmadığını nasıl tespit edebilirim?


Bu soru, önceki iki sorunun kanon versiyonu olarak oluşturuldu. Burada meta tartışmaya bakın .
doppelgreener


1
Ayrıca, meta olarak konuşulan soruları birbirine bağlamak: gamedev.stackexchange.com/questions/38066/… ve gamedev.stackexchange.com/questions/15491/…
MichaelHouse

Yanıtlar:


22

Overgrowth Alpha 132 videosu çıkıntı tırmanışını nasıl uyguladıklarını gösteriyor.

Yöntemleri herhangi bir motorda, silindir ve küre yerine dikdörtgen ve daire kullandığınız 2D motorlarda bile çalışmalıdır .

Çıkıntı tespiti iki bölümden oluşur:

Duvar tespiti (küreyi kullanarak)

Oyun, oyuncunun bir duvarla çarpışıp çarpışmadığını kontrol eder. Bir duvar varsa, oyuncunun yakalayabileceği çıkıntılar olabilir. İkinci kısım çıkıntıları analiz etmeye başlar.

Çıkıntı tespiti (silindir kullanılarak)

Oyuncunun bir duvara temas etmesi durumunda, bir silindir çıkıntıya değene kadar oyuncunun konumunun üzerindeki belirli bir mesafeden aşağı doğru süpürülür. Bu üç şeyi belirler:

  • Oyuncunun üzerinde bir çıkıntının olup olmadığı
  • Çıkıntının yüksekliği
  • Oyuncunun çıkıntıya tırmanması için yer olup olmadığı, silindirin oyuncu ile aynı yatay alanı kapladığı düşünülür.

Şaşırtıcı yöntem ve fantastik örnek +1
Bugster

“bir silindir oyuncunun pozisyonunun üzerinde belirli bir mesafeden aşağı doğru süpürülür” Hangi mesafe? Bu, iç mekan ortamlarıyla uğraşırken çok önemlidir (tavanı yanlışlıkla kesersiniz).
Tara

1
@ Geçmişte, tırmanmak için yeterli engel bulunmadığını doğrulamak için bir ses kontrolü ile takip etmeden önce çıkıntı yüzeyini bulmak için bir raycast kullandım. Raşit yönlü olduğu için tavanları yanlış pozitif olarak okumaz - başlangıç ​​noktası çok yüksekse hala bir sonraki katta takılabilir. Tam metrikler her oyunun birçok özelliğine bağlı olacaktır - karakter boyutu, kol uzanma, seviye tasarımında boşluk, düşen hızlar, vb.
DMGregory

@DMGregory Işın dökümüyle iyi fikir!
Tara
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.