Patryqss Opublikowano 30 Maja 2019 Udostępnij Opublikowano 30 Maja 2019 Witam, Mam mały problem z odwracaniem się wroga w kierunku mojego bohatera. W tej chwili kod odwracania się wygląda tak: 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): 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: Macie może pomysł jak napisać taki kod, żeby lew to ogarnął i atakował precyzyjniej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Maja 2019 Administratorzy Udostępnij Opublikowano 30 Maja 2019 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 Więcej opcji udostępniania...
Patryqss Opublikowano 30 Maja 2019 Autor Udostępnij Opublikowano 30 Maja 2019 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 Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 30 Maja 2019 Administratorzy Udostępnij Opublikowano 30 Maja 2019 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! Saus i Patryqss 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę