Odpowiedzi:
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.
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 ...).)