Bir aracın bir noktaya hareket etmesini ve aşırıya kaçmadan veya salınmadan durmasını nasıl sağlayabilirim?


9

Tamam, bu sorunun cevabında tarif ettiğim gibi, 2D konum, hız, açısal hız ve sürükleme / sürtünme ile bir aracımız olduğunu düşünün . Değişken miktarda hızlanabilir ve kırılabilir, ancak anında ölü durmaz veya anında en yüksek hıza ulaşamaz. Belirli bir noktaya hareket etmesini ve aşırı hızlı veya salınım yapmadan - mümkün olan en hızlı zamanda - durmayı nasıl sağlayabilirim?

Şöyle bir şey düşünüyordum:

  • hedef konuma dönün.
  • hızlandırmak
  • "Bir sonraki kenara mola uygularsam, hedefi aşar mıyım?"
  • Aşarsa, molaları bir miktar uygulayın.

Eminim bu çözülmüş bir problem ve muhtemelen tarif ettiğimden daha iyi bir yöntem var.

Yanıtlar:



3

Matematik kullanarak, hızınızı ve maksimum yavaşlama oranınızı biliyorsanız, minimum durma mesafenizi bilebilirsiniz. Bunu göz önünde bulundurarak, belirli bir noktada durmak için tam olarak ne zaman fren uygulamak istediğinizi (yuvarlama / niceleme hataları bir kenara) bilebilirsiniz.

Şimdi, umarım matematikte benden daha iyi biri gerçek formülü yayınlar ...


2
finalPositionDelta = -0.5 * sqr(currentSpeed) / maximumDecelerationAncak bu, yavaşlamanızın sabit olduğunu varsayar; bu, simülasyonunuzun derinliğine bağlı olarak geçerli olmayabilir. Ranieri'nin çözümüyle giderdim. (whoops üzgünüm bu DIV yavaşlama, mul değil)
tenpn

Evet, bu yöntem bir kontrol sistemleri sorunu olarak çerçevelemenize rağmen hala yararlıdır, çünkü ilgili degradeleri anlamak, hata ölçümünde kararsızlığı veya salınımı önlemeye yardımcı olmalıdır.
Kylotan


1

Bazen oyun geliştirmede kısayollar almanız gerekir. Buradaki kısayol, fiziksel olarak çok kısa sürede uygulanan çok büyük bir kuvvet olan bir Dürtü olarak adlandırılır. Zaman içinde entegre etmek yerine, parametreye doğrudan bir değişiklik olarak uygularsınız: hızı 0 olarak ayarlayın.

Soru şudur: kısayolu kullanmak ister misiniz?


2
Oyuncu için görünmezse kısayol almaktan endişe etmiyorum, ancak bir araç yerinde ölü durabilirse çok garip görünecektir.
Iain

1
Bu kesinlikle doğrudur, ancak bir aldatmadan sonra tam olarak istediğiniz noktada durmanıza yardımcı olur, böylece karmaşık hesaplamadan kaçınır ve zaman adımınızı çok fazla bölmek zorunda kalırsınız.
ADB
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.