Sutikku Opublikowano 2 Czerwca 2015 Opublikowano 2 Czerwca 2015 Mam dwa obiekty i oba stale się obracają, w lewo bądź w prawo. Zmienna kat, to zmienna pola widzenia, różne przyjmuje wartości, ale próbowałem dla różnych i coś nie trybi. GML if!( collision_line(x, y, wrog.x, wrog.y, obj_control, 1, 0) ) { dirt=point_direction(x, y, wrog.x, wrog.y); if( abs(angle_difference(direction, dirt)) < kat) { wykryto=1; } } Kod nie działa, jeśli obiekt (są tylko dwa) obraca się w prawo. I w sumie nie wiem o co chodzi.
I am Lord Opublikowano 2 Czerwca 2015 Opublikowano 2 Czerwca 2015 Zobacz co wypluwa w konsoli show_debug_message() GML show_debug_message( string(abs(angle_difference(direction, dirt))) + " < " + string(kat) ) Wstaw przed tym ifem
Sutikku Opublikowano 2 Czerwca 2015 Autor Opublikowano 2 Czerwca 2015 E, konsola mi uciekła. Nie mogę wyłączyć gmsa, bo włącza mi się bardzo, bardzo długo, a czasem i wcale. Ale tak teraz patrzę i to nie działa tylko przy bardzo małych wartościach zmiennej kat na przykład 0.1. I to nie zawsze, czasem coś załapie. Tak bardzo mi nie zależy na tych ułamkowych wartościach, ale jednak. O, zapomniałem dodać, że oba obiekty się poruszają.
Threef Opublikowano 2 Czerwca 2015 Opublikowano 2 Czerwca 2015 Czegoś nie rozumiem. Spodziewasz się że warunek (zależny od direction które jest w zakresie 0-360) będzie działał dla niewielkich ułamkowych wartości? Mogę od siebie dać dać tip optymalizacyjny: GML dirt=point_direction(x, y, wrog.x, wrog.y); if( abs(angle_difference(direction, dirt)) < kat && !collision_line(x, y, wrog.x, wrog.y, obj_control, 1, 0) ) { wykryto=1; }
I am Lord Opublikowano 2 Czerwca 2015 Opublikowano 2 Czerwca 2015 Jak ci się konsola buguje (mi też) to ściągnij sobie to https://marketplace.yoyogames.com/assets/318/scratch-pad Wtedy po prostu zamiast pisać show_debug_message() piszesz sp()
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ę