Skocz do zawartości

Strzelanie do obiektu


Arekadiusz

Rekomendowane odpowiedzi

Witam wszystkich po długiej przerwie!

Chcę, aby obiekt lufa jeżeli wykryje, że obiekt pojazd jest gzieś w jej okolicy (np. 40 pixeli) zaczęła strzelać do pojazdu, ale jeżeli pojazd wyjdzie za te 40 pixeli to aby przestała i także aby przestała gdy obiektowi pojazd skończy się życie, a następnie szukała kolejnego obiektu pojazd i w niego strzelała. Dodatkowo chciałbym także, aby lufa się obracała, w tym kierunku w którym strzela.

Dodam także że obiektów pojazd będzie kilka.

 

Jak to zrobić?

Proszę o pilną pomoc!

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if( instance_number(obj_pojazd)>0 ) //sprawdzamyt czy istnieje jakis pojazd

{

var_obj=instance_nearest(x,y,obj_pojazd); //jesli tak to sprawdzamy ktory jest najblizej

if( distance_to_object(var_obj)<40 ) //jesli jest blizej niz 40 to zaczyna strzelac

{

//kod strzelania

}

}

 

Co do obracania to pokombinuj z image_angle

Odnośnik do komentarza
Udostępnij na innych stronach

Na tworzenie obiektu, nie jestem pewien czy działa w Lite. Poza tym pisze jeszcze w GM7, więc mogą być małe problemy.

GML
if( instance_number(obj_pojazd)>0 ) //sprawdzamy czy istnieje jakis pojazd

{

var_obj=instance_nearest(x,y,obj_pojazd); //jesli tak to sprawdzamy ktory jest najblizej

if( distance_to_object(var_obj)<40 ) //jesli jest blizej niz 40 to zaczyna strzelac

{

a = instance_create(x,y,obj_pocisk); // Tworzymy obiekt...

a.speed = 20; // ...ustawiamy mu predkosc...

a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

@Roki: Znalazłem, sprawdziłem i obraca mi się, ale źle. Jak naprzykład pojazd jest na dole to lufa obraca się w lewo :blink: .

 

@MagnuArias: Działa.

Tylko obracanie lufy jeszcze mi nie działa.

 

EDIT: Jak ograniczyć aby pociski nie leciały jeden za drugim tylko co jakiś czas?

Odnośnik do komentarza
Udostępnij na innych stronach

Step lufy

GMLif keyboard_check(vk_left)

{

direction +=2;

}

else if keyboard_check(vk_right)

{

direction-=2;

}

 

W tym samym obiekcie przy kliknięciu spacją możesz użyć alarmu albo własnego timera.

 

Nie rozumiesz. Chodzi mi, aby lufa obracała się automatycznie w strone tego samochodu. I mam wersje lite.

Odnośnik do komentarza
Udostępnij na innych stronach

ta lufa ma mu sie chyba automatycznie obracac...

skoro sie zle obraca to zmien

GML
image_angle = point_direction(x,y,obj.x,obj.y);

na np:

GML
image_angle = point_direction(x,y,obj.x,obj.y)-90;

jak bedzie źle to zmieniasz tak az będzie dobrze.

 

strzelanie co jakis czas:

 

GML
if( instance_number(obj_pojazd)>0 ) //sprawdzamy czy istnieje jakis pojazd

{

var_obj=instance_nearest(x,y,obj_pojazd); //jesli tak to sprawdzamy ktory jest najblizej

if( distance_to_object(var_obj)<40 ) //jesli jest blizej niz 40 to zaczyna strzelac

{

if( alarm[0]==-1 ) //jesli alarm0 nie jest aktywny...

{

alarm[0]=room_speed*3; //..ustawiamy go na 3 sec

}

}

}

a w alarm0:

GML
a = instance_create(x,y,obj_pocisk); // Tworzymy obiekt...

a.speed = 20; // ...ustawiamy mu predkosc...

a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek</span></span></span>

 

jak w lite nie dziala image_angle to bedziesz mial problem :)

Odnośnik do komentarza
Udostępnij na innych stronach

@Danielus:

jak w lite nie dziala image_angle to bedziesz mial problem :)

 

No właśnie go mam i pytam się czy można dla wersji lite jakoś to rozwiązać :rolleyes: .

A co do tego co mi podałeś jest dobre, tylko że po strzale i zniknięciu pojazdu pokazuje się taki błąd:

 

___________________________________________

ERROR in

action number 1

of Alarm Event for alarm 0

for object lufa:

 

Error in code at line 3:

a.direction = point_direction(x,y,var_obj.x,var_obj.y); // ...i kierunek

^

at position 44: Unknown variable x

Odnośnik do komentarza
Udostępnij na innych stronach

@fliper spójrz kilka postów wyrzej:

 

@Roki: Znalazłem, sprawdziłem i obraca mi się, ale źle. Jak naprzykład pojazd jest na dole to lufa obraca się w lewo :blink: .

 

@danielus: dzięki teraz jest git :thumbsup:

 

A nie ma żadnego innego sposobu na obracanie oprócz tego z faq?

Albo mógłby mi ktoś zrobić przykład. Może źle animacje robie albo coś...

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