Skocz do zawartości

Odwracanie się w kierunku bohatera


Rekomendowane odpowiedzi

Witam,

Mam mały problem z odwracaniem się wroga w kierunku mojego bohatera. W tej chwili kod odwracania się wygląda tak:

1.png.e768f85a26769ee05cda9a77501fd9f8.png

 

Jak można jednak łatwo zauważyć, lew "dzieli" sobie obszar dookoła siebie w ten sposób (x, y są wyśrodkowane w obu obiektach):

2.png.9ddee2102c67953091f311496c24699e.png

Przez to, gdy jestem wciąż po jego lewej, ale powyżej jego igreka, on odwraca się już w przód i przez to atak nie trafia tam gdzie powinien. Chciałbym zrobić tak, żeby podzieliło się to w mniej więcej ten sposób:

3.png.1ac681e3ad729109ce49bddcf1490898.png

 

Macie może pomysł jak napisać taki kod, żeby lew to ogarnął i atakował precyzyjniej?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

var dir = (point_direction(objLew.x, obj.Lewy.y, objHerkules.x, objHerkules.y) + 45) % 360; // dodajemy 45 stopni żeby 0 oznaczało tak naprawdę -45 i bierzemy resztę z dzielenia przez 360, żeby np. 316+45 dawało nam 1 a nie 361.

if (dir < 45) { /* prawo */ } else if (dir < 135) { /* góra */ } else if (dir < 225) { /* lewo */ } else { /* dół */}

var dir = (point_direction(objLew.x, objLew.y, objHerkules.x, objHerkules.y) + 45) % 360; // dodajemy 45 stopni żeby 0 oznaczało tak naprawdę -45 i bierzemy resztę z dzielenia przez 360, żeby np. 316+45 dawało nam 1 a nie 361.

if (dir < 45) { /* prawo */ } else if (dir < 135) { /* góra */ } else if (dir < 225) { /* lewo */ } else { /* dół */}

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, wszystko ładnie działa, bardzo przydatna funkcja, ale musiałem zmienić końcówkę na taką:

if (dir < 90) { /* prawo */ } else if (dir < 180) { /* góra */ } else if (dir < 270) { /* lewo */ } else { /* dół */}

Dopiero na takich ustawieniach lew zaczął w dobrych momentach się obracać

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Masz zupełną rację! Przecież skoro dodałem 45, to 45 na rysunku zamieni się na 90 w kodzie. No ale udało się samemu rozwiązać, czyli będą z Ciebie ludzie :) Kto drąży i kombinuje ten daleko zachodzi!

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...