Oyuncu yukarı hareket ediyor, zıplıyor veya tırmanıyor mu?


11

İçinde merdivenler bulunan 2B fizik tabanlı bir platform oyununda, hangi oyuncunun canlandırılacağını bilmek için, yukarı hareket eden oyuncunun bir atlamadan mı yoksa bir merdivenden tırmanmasından mı kaynaklandığını nasıl belirlersiniz?

Ve genel olarak, yön vektörü oynatılacak animasyonu belirlemek için yeterli değildir: hareketin nedenini nasıl belirlersiniz (böylece kullanılacak doğru hareketli grafiği biliyorsunuz)?


1
Eğer bir oyuncu merdivendeyse, gerçekten havada mı?
Derek

Yanıtlar:


15

Burada ifade ediyor gibi göründüğünüz düzenli olarak kişisel bir mantık sorunum var. Bazen mantığa bakıyorsunuz ve tamamen yanlış yönden programlıyorsunuz. Bu durumda, mantık kodu nedeniyle, başından beri hangisinin olduğunu bildiğinizi fark etmiyorsunuz gibi görünüyor. Programlı olarak, merdivende olup olmadığını zaten bilmelisiniz.

Bir düşünün (dediğim gibi, sık sık bu problemim var). Oyun mantığı, akıllı bir programcı olduğunuzu varsayarak merdivende olduğunuzu bilmelidir. Daha iyi bir açıklama için, bir dosya arşivi tipim var ve günün yaklaşık bir saatini boşa harcadım ve verilerin boyutunu nasıl elde edeceğimizi anlamaya çalışıyorum ve asla bir kez dosyaya yüklediğimde, şimdi boyutunu bilmek: S.

Bunun bu kadar münhasır bir şekilde ilgili olmasının sebebi, ona "Şimdi havada olduğumu, merdivende mi yoksa zıplarken mi nasıl anlayabilirim?" "Havaya girmek üzereyim, ama hangi yöntemle İLK, böylece animasyonları kullanmak için kullanabilirsiniz."


Basit örneğin: boolean'ınızı true olarak OnJump()değiştirin jumpingve sonra havadaysanız ve jumpingyanlışsanız, ya düşersiniz ya da merdivene girersiniz, vb.
Joshua Hedges

6

Fizik sistemi, oyuncunun neden belirli bir yönde hareket ettiğini bilmez veya umursamaz. Fizik sisteminin oyuncuyu bu şekilde hareket ettirmesine neden olan oyununuzdur ve bu nedenle bunu takip etmek oyununuzun sorumluluğundadır. Oyuncu varlığının üzerinde atlama, tırmanma, koşma, vb. Olup olmadığını söyleyecek bir durum olmalıdır. Bunu fizik sisteminde neler olduğuna göre anlamaya çalışmamalısınız.


2

Oyuncuların dikey hızını ayarlayan çarpışmada tetiklenen herhangi bir olayın, hangi animasyonu kullanacağını belirten bir bayrak ayarlamak için de kullanılabileceği anlaşılıyor.

Size hangi bilgileri sağladığından çok kısıtlayıcı olan bir 3. taraf kitaplığı kullanıyorsanız, merdiveni bir dikdörtgenle çevrelemek mümkün olacaktır ve oyuncu yukarı doğru hareket edip o dikdörtgenin içinde yer alıyorsa tırmanma animasyonunu yapın.


Bu aslında daha sonra kendi oyun gelişimime değineceğim iyi bir noktaya geliyor ve bu da bir fiziğin hızını fiziğe göre nasıl değiştireceğidir. Kollarını prosedürel olarak sallamak istediğim karakterlerim var, ne kadar hızlı düştüklerine bağlı olarak. Ve bunu derinlemesine yapmak için iyi bir yol düşünmemiştim (zaman içinde düşünüyordum), ama hız fikriniz çok daha iyi. Genel bir kullanılabilir cevap için +1 ve yalnızca davasına özgü değil.
Joshua Hedges

1

Atlama hızını ayarlarken karakter durumunu STATE_JUMPING olarak ayarlayın. Bunu yaptığınızda, oyuncunun hangi durumda olduğunu her zaman bilirsiniz ve oyuncuların durumunu kontrol ederek buna göre hareket edebilirsiniz.

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.