Skocz do zawartości

Potrójny strzał


Revael

Rekomendowane odpowiedzi

Cały pomysł polega na tym, że gry obj_player zbierze obj_bonus_triple to przez następne 10 sekund będzie strzelał potrójnie ( Można by to porównać do Contry kiedy po zebraniu odpowiedniego bonusu strzały leciały w trzech kierunkach ). Jedna kula "główna" leci w stronę kursora a dwie pozostałe tworzą się o 30 stopni w górę i o 30 stopni w dół. Nie mam pomysłu jak to zrobić. Tak wygląda kod strzelania teraz :

 

if reload = 0 && movement = 0

{

if keyboard_check(vk_space)

{

alarm[0]=30

reload = 1

image_speed = 0.2

audio_play_sound(snd_cannonshot,10,0)

instance_create(x+lengthdir_x(direction,direction),y+lengthdir_y(direction,direc

tion),obj_bullet);

}

}

 

reload to po prostu przerwa miedzy strzałami

movement jest aby strzał nie mogł być oddany podczas ruchu

Odnośnik do komentarza
Udostępnij na innych stronach

Jest ciekawa sztuczka którą niedawno się nauczyłem. Można robić coś takiego:

GML
with(instance_create(x+lengthdir_x(direction,direction),y+lengthdir_y(direction,direc

tion),obj_bullet))

{

direction=other.image_xscale

speed=10

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if reload = 0 && movement = 0

{

if keyboard_check(vk_space)

{

alarm[0]=30

reload = 1

image_speed = 0.2

audio_play_sound(snd_cannonshot,10,0)

instance_create(x+lengthdir_x(dlugosc_lufy,direction-30),y+lengthdir_y(dlugosc_lufy,direction-30),obj_bullet);

instance_create(x+lengthdir_x(dlugosc_lufy,direction ),y+lengthdir_y(dlugosc_lufy,direction ),obj_bullet);

instance_create(x+lengthdir_x(dlugosc_lufy,direction+30),y+lengthdir_y(dlugosc_lufy,direction+30),obj_bullet);

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Ten kod powinien robić to o czym mówisz. Tylko musisz tym strzałom dodać kierunek. Więc

GML
if reload = 0 && movement = 0

{

if keyboard_check(vk_space)

{

alarm[0]=30

reload = 1

image_speed = 0.2

audio_play_sound(snd_cannonshot,10,0)

var bullet=instance_create(x+lengthdir_x(dlugosc_lufy,direction-30),y+lengthdir_y(dlugosc_lufy,direction-30),obj_bullet);

bullet.direction=direction-30;

var bullet=instance_create(x+lengthdir_x(dlugosc_lufy,direction ),y+lengthdir_y(dlugosc_lufy,direction ),obj_bullet);

bullet.direction=direction;

var bullet=instance_create(x+lengthdir_x(dlugosc_lufy,direction+30),y+lengthdir_y(dlugosc_lufy,direction+30),obj_bullet);

bullet.direction=direction+30;

}

}

A w create strzału nadaj im prędkość, lub przypisz od razu. Możesz też użyć with().

Odnośnik do komentarza
Udostępnij na innych stronach

Tak naprawdę, to zrobiłbym to tak.

GML
var bullet=instance_create(x, y, obj_bullet);

bullet.direction=point_direction(x, y, mouse_x, mouse_y)-30;

var bullet=instance_create(x, y, obj_bullet);

bullet.direction=point_direction(x, y, mouse_x, mouse_y);

var bullet=instance_create(x, y, obj_bullet);

bullet.direction=point_direction(x, y, mouse_x, mouse_y)+30;

Tam sobie jakieś lengthdiry ustaw, to będzie ładnie z broni wylatywało. Bo Ty chcesz, żeby to leciało pod kątem 30 stopni, od kursora, tak?

Odnośnik do komentarza
Udostępnij na innych stronach

Kolega mi pomógł i taki kod działa.

druga_kula = instance_create(x+lengthdir_x(27,direction),y+lengthdir_y(27,direction),obj_bull

et);

druga_kula.direction+=15

trzecia_kula = instance_create(x+lengthdir_x(27,direction),y+lengthdir_y(27,direction),obj_bull

et);

trzecia_kula.direction-=15

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