Jak zaimplementować strzelbę w grze?


14

Pistolety i karabiny maszynowe są łatwe - możesz mieć pociski lecące w określonym kierunku, więc już to zaimplementowałem. Z drugiej strony strzelba zadaje obrażenia wszystkim przedmiotom w określonym obszarze, który wygląda jak stożek. Jak mam to wdrożyć? Mam tutaj kilka sugestii, ale przydałaby mi się rada:

  • Podziel pocisk na kilka małych pocisków, które same zadają mniej obrażeń, ale lecą w tym samym kierunku (prawdopodobieństwo trafienia bliższego wroga jest większe)
  • Nie używaj pocisków - po prostu uzyskaj efekt cząsteczkowy strzału ze strzelby i oblicz, ile obrażeń zadają wrogowie na podstawie pozycji / orientacji itp.
  • Miej dużą niewidzialną kulę (na przykład sześcian), która niszczy rzeczy, a także efekt cząsteczkowy, który sprawi, że będzie wyglądać, jakby to była strzelba ze strzelby.

Z góry dziękuję!


Wszystkie te opcje są prawidłowe (chociaż pierwsza, dlaczego nie zacząć od wielu kul?), A decyzja zależy od projektu gry.
congusbongus

Powiązane: Formuła dokładność vs odległość i „stożek ognia” mogą być dobrym terminem do tego celu.
MichaelHouse

Odpowiedzi:


21

Większość gier wykorzystuje strzelby jako broń, która wystrzeliwuje wiele pocisków jednocześnie, ale każda z określoną losowością kąta opuszcza aktora. W większości współczesnych strzelanek FPS prawie wszystkie bronie mają co najmniej trochę rozrzutu dla każdego wystrzelonego strzału, co czyni je mniej celnymi na dalekim dystansie, więc tę samą implementację można zastosować do strzelb.

Prosta implementacja: gdy chcesz uzyskać 10 ° rozrzutu, a gracz patrzy w kierunku 0 ° w pionie i 50 ° w poziomie, pociski pozostawiają je pod kątem w zakresie od -5 ° do + 5 ° w pionie oraz między 45 ° i 55 ° w poziomie.

Lepsza implementacja: Rozłóż pociski nie w prostokącie, ale w okrągłym obszarze wokół celownika gracza.

Dostrzegana zmniejszona skuteczność na dalekim dystansie wynika z rozrzutu pocisków, co oznacza, że ​​wszystkie odległe i małe cele nie zostaną trafione. Jeśli chcesz to jeszcze podkreślić, aby Twoja strzelba była czystą bronią krótkiego zasięgu, możesz także zmniejszyć obrażenia każdego pocisku dla każdej poruszającej się logiki gry.

W strzelankach z odgórnym lub bocznym przewijaniem rzadziej rozprzestrzenia się na wszystkie bronie, ponieważ obszar gry jest zbyt mały, aby miało to sens, ale jeśli chcesz broni takiej jak strzelba, jest to inna sprawa i to samo można zastosować technikę, tyle że nie musisz przejmować się trzecim wymiarem. Alternatywnie możesz wystrzelić pociski pod ustalonymi kątami, np. -6 °, -4 °, -2 °, 0 °, 2 °, 4 °, 6 °. W kontekście 2D nie będzie wyglądać tak sztucznie, jak w kontekście 3D, a graczowi, któremu spodoba się wyzwanie, spodoba się to, ponieważ zmniejsza szansę.


Lepsze wdrożenie jest równie łatwe. Pierwsze podejście wymaga dwóch losowych kątów (poziomego i pionowego), podobnie jak drugie (poza osią [0, + 5 °] i obrotu wzdłuż osi [0, 360 °])
MSalters

@MSalters Nie rozkłada równomiernie pocisków w okręgu. Zamiast tego koncentruje je wokół osi. To może, ale nie musi być efekt, na który się dążysz. Aby uzyskać jednolity losowy rozkład w okręgu, zobacz tę odpowiedź .
Daniel AA Pelsmaeker,

@Virtlink: prawda, chociaż jednolita gęstość prawdopodobieństwa w okręgu nie jest tym, co wybrałbym. Rozkład normalny jest zwykle najlepszy dla takich rzeczy fizyki, a także jest wyjątkowo prosty: po prostu rozłóż wartości with z rozkładem normalnym 1D, a wartości φ z tym samym rozkładem normalnym skalowanym o aled. Nie trzeba przechodzić do współrzędnych podwójnie biegunowych.
lewo około

Oto strona omawiająca rozprzestrzenianie się strzelby , możesz rzucić okiem i zobaczyć, co oni robią.
AJMansfield
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.