Buduję nieskończonego biegacza 2D. W grze postać przeskakuje z filaru na filar, a filary są generowane losowo. Mam to działa. Ale jak ustalić, czy postać nie wskoczyła na filar i wpadła w szczelinę między filarami? Filar ma zwykły prostokątny kształt.
12
Odpowiedzi:
Dodaj prostokątny obszar na dole poziomu, niższy niż minimalna dopuszczalna wysokość platformy. Jeśli gracz przeciął ten region, spadł z platformy.
źródło
if (playerPos.x < minHeight)
?Jeśli Twoja gra przewija się tylko w poziomie, możesz sprawdzić, czy pionowa pozycja postaci znajduje się poniżej dolnej krawędzi sceny.
Jeśli gra również przewija się w pionie (prawdopodobnie w górę), możesz sprawdzić, czy gracz spadł poniżej dolnej krawędzi widoku (tj. Obszar sceny, który jest na ekranie lub w ognisku kamery).
Zasadniczo warunkiem śmierci jest sytuacja, gdy postać nie pozostanie „przed kamerą”. Kontrolując ruch kamery, będziesz mógł dostroić rozgrywkę. Na przykład, jeśli na etapie przewijania w pionie pozwolisz tylko, aby kamera „lekko gumowała” nieco w dół, a jednocześnie pozwalając na pełny ruch w górę, będziesz karać głębokie spadki poza ekran.
źródło
Alternatywnie do sprawdzenia współrzędnej pionowej można po prostu sprawdzić prędkość pionową. Jeśli znak spada szybciej niż jakiegoś progu, zawierać nie żyją (nawet jeśli tam jest jakiś platforma na tyle niska, aby jeszcze osiągnąć, skutki byłyby śmiertelne).
Oczywiście działa to tylko wtedy, gdy twoja gra prawidłowo wdraża podstawową fizykę swobodnego spadania, tzn. Prędkość opadania faktycznie wzrasta podczas upadku, tak jak ma to miejsce w rzeczywistości (aż do prędkości końcowej).
źródło
Jeśli masz wysokość filarów, możesz znaleźć najniższą istniejącą i porównać ją z pionową pozycją gracza. Jeśli znajdzie się poniżej najniższego filaru, nie ma szans na odzyskanie. Możesz ograniczyć ten czek tylko do słupków za i przed graczem.
Przykład: Mamy 3 filary o wysokościach [10, 20, 40]. Gracz skoczył na filar o wysokości 40, skacze do przodu do 20. Czuł różnicę między 40 a 20, ma teraz wysokość 15. Oznacza to, że czuł się. Aby uzyskać mniej rygorystyczną kontrolę, poczekaj, aż będzie poniżej 10.
źródło
Sprawdzaj, jak długo upadła postać. (tj. jak długo oni poruszali się „w dół”). Kiedy minęło więcej czasu niż ekran, z definicji spadły ze sceny, tak?
źródło