Tworzę grę izometryczną. Kiedy gracz próbuje wejść po przekątnej do ściany, chcę, aby gładko się po niej ślizgała, aby każda część ruchu była zgodna z prawem, a wszystko w kierunku normalnym zostało wyrzucone. Ściany mogą być pod dowolnym kątem, nie tylko pionowym lub poziomym, a gracz ma ruch 360 stopni.
Czuję, że już prawie jestem, ale nie mogę umieścić ostatniego kawałka na miejscu.
Aktualizacja: świetna wiadomość dla wszystkich! Mam to działa. Ale ... Jestem trochę zdezorientowany, co powinienem normalizować, a co nie. Normalna po prostu musi być wektorem jednostkowym, prawda? ale potem miksuję to z moim wkładem, więc normalizuję to - czy się mylę?
Nawiasem mówiąc, odkryłem również, że muszę przesunąć odtwarzacz o 1 piksel w kierunku normalnym, aby nie utknęły na czymś - działa dobrze.
źródło
desiredMotion
wyniki. Czy kiedykolwiek sprawiłeś, że to działało?Chociaż usunięcie elementu ruchu w kierunku normalnym jest proste, to może być odpowiednie dla twojej gry, aby zamiast tego obrócić wektor ruchu. Na przykład w grze akcji dla trzeciej osoby może być łatwo rozłączyć się na ścianach i innych granicach, więc możesz zgadywać, co zamierza gracz.
źródło