Sonsuz bir koşucu / atlama teli içindeki karakterin boşluğa düşüp düşmediğini nasıl belirleyebilirim?


12

2B sonsuz koşucu inşa ediyorum. Oyunda, karakter sütuntan sütuna atlar ve sütunlar rastgele oluşturulur. Bu işim var. Ancak karakterin bir sütuna atlayamadığını ve sütunlar arasındaki boşluğa düşüp düşmediğini nasıl belirleyebilirim? Bir sütun sıradan dikdörtgen şeklindedir.


OT: Bu soru rpg'de yayınlanmış olsa da. Ve "Şimdi ne tür bir kural sömürüsü bulundu? Sonsuz koşu nasıl?" Diye düşündüm.
o0 '.

Yanıtlar:


20

Seviyenin altına, platformun izin verilen minimum yüksekliğinden daha düşük bir dikdörtgen bölge ekleyin. Oyuncu bu bölgeyle kesişirse, platformdan düştü.


1
Ve bu dikdörtgeni kameranın bir çocuğu yapın, böylece kamera ile hareket eder ve her zaman mevcut olur? Bu çok kolay. Teşekkürler.
SanSolo

Oyuncu seviye atlayamasa bile, bunun bir şekilde başarabildiğinde sahip olmak için iyi bir koruma olduğunu düşünüyorum.
mucaho

5
Kelimenin tam anlamıyla kavşağı kontrol ediyorsanız, karakterinizin yüzeyden geçecek kadar hızlı düşmeyeceğinden emin olun (yani, karakterin tamamen üstünden ve sonraki karenin tamamen altından).
wchargin

2
Evet, rektum bundan kaçınmak için gerektiği kadar uzanmalıdır. Ayrıca sadece yüksekliği kontrol etmek işe yarayacaktır, ancak bu, seviyeye bağlı olarak "öldürme bölgesini" yeniden boyutlandırma esnekliği sağlar.
mklingen

6
Dikdörtgen boyunca "kırpma" önlemek için neden basit değil if (playerPos.x < minHeight)?
Cole Johnson

24

Oyununuz yalnızca yatay olarak kaydırılıyorsa, karakterin dikey konumunun sahnenin alt kenarının altında olup olmadığını kontrol edebilirsiniz.

Oyununuz dikey olarak da kaydırılıyorsa (muhtemelen yukarı doğru), oynatıcının görünümün alt kenarının altına düşüp düşmediğini kontrol edebilirsiniz (yani sahnenin ekrandaki veya kameranın odağı olan alanı).

Genel olarak, ölüm durumu karakterin "kamerada" kalmamasıdır. Kameranızın hareketini kontrol ederek oyununuzu ayarlayabileceksiniz. Örneğin, dikey bir kaydırma aşamasında, kameranızın yalnızca aşağı doğru "lastik bant" yapmasına izin verirseniz, tam yukarı doğru harekete izin verirseniz, derin, ekran dışı düşüşleri cezalandırırsınız.


Evet, bu da kolay bir yol. Sadece en düşük pozisyonu bulmalıyım. Karakterin olabileceğini.
SanSolo

1
Doğru! yatay kaydırma çubuğu varsa, harita düzenleyicinizde sahnenin dikey boyutunu kontrol edebilirsiniz. Dikey kaydırma çubuğunda, kameranın yalnızca yukarı doğru hareket ettiğinden emin olabilirsiniz. Bu şekilde, karakter düşerse, kameranın görüşünün altında kalır. Ardından karakterin dikey konumunun görünümün alt sınırının altına düşüp düşmediğini kontrol edebilirsiniz.
Jelle van Campen

@JellevanCampen: Kamerayı mutlaka yukarı doğru hareketle sınırlamanız gerekmez. "Kamerada" kalmayan karakterleri öldürebilir veya kameranın onları takip etmesini sağlayabilirsiniz.
Mooing Ördek

Bu yanıtı çok sevmiyorum çünkü kamerayı doğrudan düz sınırlara bağlıyor. mklingen'in cevabı, seviyenin sınırları birden fazla ekran yüksekliği olsa bile çalışır. Kamera, karaktere odaklanmak için yukarı ve aşağı hareket edebilir, ancak karakterin kameradan daha hızlı düşmesi, seviyede kalması riski yoktur, ancak yine de doğrudan kameraya bağlı olan sınır kutusuyla çarpışır.
Kevin

2
@Kevin: Genel oyunlara katılıyorum, fakat prosedürel olarak oluşturulmuş sonsuz kaydırıcılar için değil. Örneğin, dikey bir kaydırıcıda, ya yeni kutular oluşturmaya devam etmelisiniz ve ekran koruyucu kutuları umutsuzluğa düşürmelisiniz ya da kamera hareket ederken kutuları güncellemeye devam etmelisiniz. Ölüm durumu doğrudan "kamerada kalmamak" ile bağlantılı olduğundan durumu kameraya bağlamak mantıklıdır. Ayrıca, yeni nesneler oluşturmak ve çarpışma kontrolüne başvurmak yerine, kamera sınır kontrolü yapmak daha performanslıdır.
Jelle van Campen

2

Dikey koordinatı kontrol etmeye alternatif olarak , sadece dikey hızı kontrol edebilirsiniz. Karakter aşağı hızlı bir eşikten düşen ise (orada bile, onlar ölü sonuçlandırmak olduğunu hala darbe öldürücü olur ulaşması biraz platformu yeterince düşük).

Tabii ki, bu sadece oyununuz temel serbest düşme fiziğini düzgün bir şekilde uygularsa çalışır, yani düşme hızı gerçekte olduğu gibi (terminal hızına kadar) aslında düşme sırasında artar .


1

Sütun yüksekliğiniz varsa, mevcut en düşük değeri bulabilir ve oyuncunun dikey konumu ile karşılaştırabilirsiniz. En düşük direğin altındaysa, geri dönme şansı yoktur. Bu kontrolü yalnızca oynatıcının arkasındaki ve önündeki sütunlarla sınırlandırabilirsiniz.

Örnek: Yükseklikleri olan 3 sütunumuz var [10, 20, 40]. Zıplayan oyuncu 40 yüksekliğindeki direk üzerindedir, 20'ye ileri atlar. 40 ve 20 arasındaki boşlukta hissetti, şimdi 15 yükseklikte. Daha az sıkı kontrol için, 10'un altında olana kadar bekleyin.


Tüm sütunlar aynı boyuttadır.
Değişen

0

Bir karakterin ne kadar süre düştüğünü sayın. (yani ne kadar zamandır "aşağı" hareket ettikleri). Bir zamandan daha fazla düştüklerinde, tanımı gereği sahneden düştüler, değil mi?

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.