Skok na ścianie dla platformówki 2D

14

Szukałem sposobu na wprowadzenie skoku do ściany w mojej grze xna, ale nie mogę znaleźć żadnych informacji na ten temat, czy ktoś mógłby mi pomóc?

dbomb101
źródło

Odpowiedzi:

21

Kiedy gracz zderzy się ze ścianą podczas skoku (lub, jeśli wolisz, upadku), włącz flagę na kolejne 100 milisekund lub tak, że spowoduje to próbę skoku w celu pomyślnego zainicjowania skoku (ignorowanie jakichkolwiek kontroli kontaktu z powierzchnią) za pomocą spora prędkość na osi X w kierunku od ściany. Pamiętaj, aby wcześniej wyłączyć flagę, jeśli faktycznie zainicjowano skok.

chaos
źródło
3
Myślę, że musisz zmodyfikować pierwsze zdanie: „Gdy gracz zderzy się ze ścianą (podczas skoku) ...”, w przeciwnym razie gracz może skoczyć ze ściany, stojąc na ziemi obok ściany, co nie byłoby spodziewany.
CiscoIPPhone
@CiscoIPPhone: Tak, dzięki. Spowodowałoby to dziwną zmianę zachowania między 100 ms po zderzeniu a później.
chaos
2

Naprawdę właśnie sprawdziłbym punkt. Więc:

if (falling AND left_key_pressed AND !point_free(x-1,y))
    doWallJump

Możesz zmienić y, aby powiedzieć y + sprite_width / 2 (lub - w zależności od układu współrzędnych), tak aby sprawdzał on po lewej stronie środka twojego duszka zamiast na górze (lub na dole). W ten sposób N implementuje kontrole ścian do przeskakiwania ściany (ostatni akapit) .

Następnie musisz zdecydować, jak mocno chcesz skoczyć do ściany. Jeśli prędkość pionowa twojego skoku przekroczy poziom, zanim gracz będzie mógł ponownie dosięgnąć tej samej ściany, nie będziesz w stanie skoczyć w górę tej samej ściany i stopniowo spadnie na dół (jak w grach Mario ze skokami ze ściany ). Jeśli pozwolisz, aby poziomica była wystarczająco słaba, aby gracz mógł wrócić do ściany, będzie mógł przejść do ściany (jak w Meat Boy).

Innym nie wymienionym podejściem jest Super Metroid. W tej grze, gdy jesteś przy ścianie, jeśli zejdziesz ze ściany, zostanie odtworzona bardzo krótka animacja „zejście ze ściany”. Jeśli skoczysz podczas tej animacji, wykonasz skok ze ściany. (Super Metroid pozwala również graczowi wspinać się na ścianę za pomocą skoków po ścianie, ale wymaga trochę umiejętności (w rzeczywistości wszystko o skokach w ścianie w Super Metroid wymaga sporo umiejętności ...).)

Jeff
źródło