Płynny odbicie na suchego przestwór oceanu.
Wiesz, że pierwszy parametr w leghtdir oznacza promień koła z którego liczysz tą pozycję x, a direction kąt pod jakim znajduje się punkt na tym kole?
Z tego kodu wynika, ze sprawdzasz czy następuje kolizja w prostokącie, którego końcami są dwa punkty oddalone o 496px i 240px od gracza pod pewnym kątem, oraz szerokie i wysokie jak odległość pewnych punktów o 496+-32px i 240+-32px pod pewnym kątem względem niego.
Całkiem spory obszar, wszystkie 4 warunki są zatem spełniane, a te prostokąty się na siebie nakładają gdzieś w 95%.
Najpierw sprawdź czym jest lenghtdir, a potem dopiero go używaj.
Zobrazuję to tak: masz zegarek i wskazówkę. Wskazówka ma długość 50cm, i wskazuje godzinę 12 (czyli kąt 90 w GM). Pozycja X grota wskazówki (czyli tej strzałki na końcu), to jest lenghtdir_x(50,90), a pozycja Y to lenghtdir_y(50,90).
Skoro sprawdzasz pozycję w prostokącie, to po co lenghtdir? Nie wystarczy np. x-32 ?