Skocz do zawartości

Tworzenie obiektów na linii do celu


alwin

Rekomendowane odpowiedzi

GML
i = 1;

dis = point_distance( obj_hero.x, obj_hero.y, obj_bug.x, obj_bug.y );

dir = point_direction( obj_hero.x, obj_hero.y, obj_bug.x, obj_bug.y );

repeat( 5 )

{

instance_create( obj_hero.x + lengthdir_x( i * ( dis / 5 ), dir ), obj_hero.y + lengthdir_y( i * ( dis / 5 ), dir ), obj_bullet );

i += 1;

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
instance_create(x+lengthdir_x(distance_to_object(bug)*0.2,point_direction(x,y,bug.x,bug.y)),y+lengthdir_y(distance_to_object(bug)*0.2,point_direction(x,y,bug.x,bug.y)),naboj);

 

Ten sposób będzie działał na jednego buga o najmniejszym id, można zrobić, żeby działało na najbliższego, wtedy w point_direction i distance_to_object dajesz instance_nearest, tak mi się wydaje.

 

Musisz dać 5 takich linijek, w każdej ma być kolejno 0.2, 0.4, 0.6, 0.8 i 1, tam gdzie jest ułamek w kodzie.

 

Edit : Aj spóźniłem się :)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
instance_create(x+lengthdir_x(distance_to_object(bug)*0.2,point_direction(x,y,bug.x,bug.y)),y+lengthdir_y(distance_to_object(bug)*0.2,point_direction(x,y,bug.x,bug.y))

 

Ten sposób będzie działał na jednego buga o najmniejszym id, można zrobić, żeby działało na najbliższego, wtedy w point direction instance_nearest, tak mi się wydaje.

 

Edit : Aj spóźniłem się :)

Spóźniłeś się to pierwsze, ale dałeś błędny kod.

na linii prostej od hero do wroga? w równych odstepach:)

Stworzy jeden bullet i do tego na odległości odl*0.2.

 

Musisz dać 5 takich linijek, w każdej ma być kolejno 0.2, 0.4, 0.6, 0.8 i 1, tam gdzie jest ułamek w kodzie
Mój jest szybszy i łatwiejszy do napisania, więc nie potrzebne jest kopiowanie 5x linijki kodu :D
Odnośnik do komentarza
Udostępnij na innych stronach

Mój jest szybszy i łatwiejszy do napisania, więc nie potrzebne jest kopiowanie 5x linijki kodu :D

 

No w sumie tak, tylko że w twoim będzie tworzył tylko dla jednego wroga,

a dokładnie do tego o najmniejszym id, zobaczymy, który kod wybierze alwin ;).

Odnośnik do komentarza
Udostępnij na innych stronach

dzięki dzięki:)

GML
i = 1;

dis=bullet_zasieg;

dir = point_direction( x, y, near_wrog.x, near_wrog.y );

repeat( 5 )

{

p=instance_create( x + lengthdir_x( i * ( dis / 5 ), dir ), y + lengthdir_y( i * ( dis / 5 ), dir ), obj_bullet_sunken );

p.strzela=true;

p.bullet_type=attack_type; // wysylamy do rakiety info czy tower jest na latajace czy naziemne

p.bullet_damage=bullet_damage;

i += 1;

}

 

działa superancko:) a gdybym chciał aby nowe bullety(kolce wychodzące z ziemi) nie pojawiały sie wszystkie naraz tylko po kolei, zaczynając od pierwszego , od strony hera powiedzy co 1/3 sekundy? lepszy będzie efekt:) użyć alarmów?

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