I am vader Opublikowano 24 Lipca 2017 Udostępnij Opublikowano 24 Lipca 2017 Witajcie, przedstawiam Wam dzisiaj przykład pokazujący jak zrobić aby strzały np. z łuku, przyklejały się do postaci i obiektów które trafiają. Poniższy przykład pokazuje jak zrobić to wygodnie i optymalnie. Używa ds_list i rysowania strzał wewnąrz obiektu który oberwał aby zminimalizować obciążenie. To łatwy i wydajny przykład, napisany oryginalnie dla Ignatusa. Jeżeli macie jakieś pytania bądź uwagi, coś co można poprawić, dajcie znać! Przykład powstał dla GM 1.4 ale powinien być kompatybilny z GM 2.0 Download / Pobieranie: Naciśnij tutaj Sposób wykorzystania w Twojej grze! Aby przykład zadziałał w Twojej grze wklej poniższy kod w create obiektu który ma mieć przyklejalne strzały: GML ArrowAngle = ds_list_create(); ArrowDist = ds_list_create(); ArrowHitAngle = ds_list_create(); Następnie wklej to w Destroy: GML ds_list_destroy(ArrowAngle); ds_list_destroy(ArrowHitAngle); ds_list_destroy(ArrowDist); A ten kod w Draw: GML var loop = ds_list_size(ArrowAngle); for(var i=0;i<loop;i++){ var xx = x + lengthdir_x(ArrowDist[| i],image_angle+ArrowAngle[| i]); var yy = y + lengthdir_y(ArrowDist[| i],image_angle+ArrowAngle[| i]); var rot = image_angle+ArrowHitAngle[| i]; draw_sprite_ext(SprArrow,0,xx,yy,1,1,rot,c_white,1); } Dodanie strzały do ciała W evencie kolizji z obiektem bądź w skrypcie emulującym kolizję, gdzie "col" to ID obiektu(można zamienić na other. w evencie kolizji) GML ds_list_add(col.ArrowAngle,point_direction(col.x,col.y,x,y)+(360-col.image_angle)); ds_list_add(col.ArrowHitAngle,image_angle-col.image_angle); ds_list_add(col.ArrowDist,point_distance(x,y,col.x,col.y)); Pamiętaj że utworzy to sztuczną strzałę w ciele, więc jeżeli nie potrzebujesz już tej strzały usuń ją za pomocą GML instance_destroy(); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Uzjel Opublikowano 24 Lipca 2017 Udostępnij Opublikowano 24 Lipca 2017 Fajne i dobrze zrobione. PS. show_debug_message w drawie :> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am vader Opublikowano 24 Lipca 2017 Autor Udostępnij Opublikowano 24 Lipca 2017 Fajne i dobrze zrobione. PS. show_debug_message w drawie :> Już poprawiam :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ignatus Opublikowano 25 Lipca 2017 Udostępnij Opublikowano 25 Lipca 2017 Genialna robota-dokładnie czegoś takiego potrzebowałem a walczyłem z tym od niepamiętnych czasów-zawsze coś nie działało-a tutaj idealnie.Dzięki 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ę