Skocz do zawartości

Shotgun...


Rekomendowane odpowiedzi

Na początek: Używałem opcji szukaj, nie znalazłem podobnego tematu, a jeżeli okazałoby się, że taki temat już był... nie umiem korzystać z opcji szukaj ^^.

 

Tak jak w nagłówku tematu, ma ktoś pomysł jak stworzyć strzelanie "shotgunowskie", ew. coś zbliżonego do tego :).

Odnośnik do komentarza
Udostępnij na innych stronach

W create obiektu śrut

direction=bron.direction+choose(-2,-1,0,1,2)
image_angle=direction
motion_set(direction,20)

 

W step obiektu bron

direction=point_direction(x,y,celownik.x,celownik.y)
image_angle=direction

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

No ale ile masz tych obiektów, trzy? Załóżmy, że:

- bron

- celownik

- kula

 

W kuli nic nie musisz w sumie dawac (procz kolizji z terem oczywiscie). W STEP obiektu bron zrob ustawianie kierunku:

direction = point_direction ( x, y, celownik.x, celownik.y );

 

Teraz tam gdzie strzelanie:

var pocisk; // tworzymy zmienna tymczasowa a nie zwykla, bo potem nam i tak nie bedzie potrzebna

repeat ( 10 )
{
   pocisk = instance_create( x, y, kula );
   pocisk.speed       = 10;
   pocisk.direction   = direction + random( 30 ) - 15;       // rozrzut maks. 15 stopni w kazdym kierunku
   pocisk.image_angle = direction;                           // sprite bedzie obrocony w odpowiednim kierunku (tylko w zarejestrowanej wersji gm)
}

Odnośnik do komentarza
Udostępnij na innych stronach

Istnieje o wiele prostszy sposób aby zrobić shotguna:

Gracz > Step > Kod

image_angle=direction
direction=point_direction(x,y,obj_celownik.x,obj_celownik.y)

if mouse_check_button_pressed(mb_left)
repeat ( 7 )
{
instance_create(x,y,obj_pocisk)
}

Pocisk > Create > Kod

{
direction=-9+obj_gracz.direction+random(18)
image_angle=direction
speed=10
}

Celownik > Step > Kod

x=mouse_x
y=mouse_y

 

A jeśli jest to za trudne i nie możesz się połapać, daję tutaj mini przykład:

https://gmclan.org/up1717_11_Shotgun.html

Odnośnik do komentarza
Udostępnij na innych stronach

Może nie działa, bo obiekt celownik nie jest wcale obiektem, tylko spritem kursora myszy???

 

To, co Ci podałem powinno wtedy działać, gdy dasz zamiast:

direction=point_direction(x,y,celownik.x,celownik.y)

to:

direction=point_direction(x,y,mouse_x,mouse_y)

 

Mój sposób powinien działać, gdyż wykorzystałem go w jednej mojej grze (Killson)...ale oczywiście konstrukcja Twojego kodu może wyglądać zupełnie inaczej :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

@Kondrad-GM:

A w ogóle czytałeś to co ja napisałem? Nie ma sensu tworzenia eventa Create obiektowi pocisk, bo jest to zupelnie zbyteczne. W zasadzie powtórzyłeś to co ja tylko w gorszej formie.

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