Skocz do zawartości

problem z collision_line


masi

Rekomendowane odpowiedzi

Czy jest mozliwosc wyciagniecia z collision_line, id wszystkich instancji tego samego obiektu z ktorymi koliduje? Po paru probach wnioskuje ze surowa funkcja wyrzuca tylko jedno id wskazanego obiektu - tego najblizszego (jezeli na linii znajdzie sie pare jego instancji).

 

Probuje zrobic "rail gun'a" ktorego pociski przeszywaja jedne obiekty, a na innych sie zatrzymuja. Do zrobienia pozostal mi juz tylko ten efekt przeszywania. Czy jest na to jakis sposob - bez rysowania ogromnych sprite'ow czy tworzenia ruchomego pocisku? Na stronie gdzies jest przyklad, prawdopodobnie, tego co probuje zrobic - niestety nie mam gm pro, wiec nie moge go otworzyc zeby to zweryfikowac, a z kodu prawie nic nie rozumiem.

Odnośnik do komentarza
Udostępnij na innych stronach

Czekaj, czekaj. Collision_line nie zwraca przecież id, tylko wartość logiczną, true lub false.

 

Być może jest tak, jak mówisz, czyli zwraca false lub id obiektu, czyli, jakby nie patrzeć, true. Wówczas sprawdzasz z poziomu każdego obiektu, czy przechodzi on przez tę linię.

 

Czyli:

GML
with ( all )

{

if ( collision_line( x1, y1, x2, y2, id, false, false ) )

{ (...) }

}

Odnośnik do komentarza
Udostępnij na innych stronach

collision_line zwraca id instancji docelowego obiektu, lub wartosc noone (nie false!) - dokladnie tak jak pisze w dokumentacji gm'a.

 

Wówczas sprawdzasz z poziomu każdego obiektu, czy przechodzi on przez tę linię.

Tak, tylko zeby wykonac konkretne/rozne czynnosci dla konkretnej instancji danego obiektu, najpierw potrzebuje id tej instancji. Problem pojawia sie w momencie w ktorym orientujesz sie ze collision_line przechodzacy przez wieksza ilosc instancji tego samego obiektu, wyrzuca id tylko jednej z nich.

 

edit: Oj, sory - nie zauwazylem ze podales kod. Juz wszystko dziala.

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ę...