Revael Opublikowano 20 Marca 2015 Udostępnij Opublikowano 20 Marca 2015 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 Więcej opcji udostępniania...
Threef Opublikowano 20 Marca 2015 Udostępnij Opublikowano 20 Marca 2015 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 Więcej opcji udostępniania...
I am Lord Opublikowano 20 Marca 2015 Udostępnij Opublikowano 20 Marca 2015 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 Więcej opcji udostępniania...
Revael Opublikowano 21 Marca 2015 Autor Udostępnij Opublikowano 21 Marca 2015 Jak narazie dalej nie poradziłem sobie z problemem i nie wiem czy rozumiecie o co mi chodzi więc daje rysunek pomocniczy. (znak "+" oznacza gdzie znajduje się kursor podczas wystrzału) http://imgur.com/Rta7R1L Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 21 Marca 2015 Udostępnij Opublikowano 21 Marca 2015 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 Więcej opcji udostępniania...
Revael Opublikowano 21 Marca 2015 Autor Udostępnij Opublikowano 21 Marca 2015 Ok tylko gdy zmieniam kierunek strzału ( przesuwam kursor niżej lub wyżej ) to i tak pociski lecą tak jak na rysunku Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Sutikku Opublikowano 21 Marca 2015 Udostępnij Opublikowano 21 Marca 2015 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 Więcej opcji udostępniania...
Revael Opublikowano 21 Marca 2015 Autor Udostępnij Opublikowano 21 Marca 2015 Tak pod kątem 30 stopni Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Revael Opublikowano 21 Marca 2015 Autor Udostępnij Opublikowano 21 Marca 2015 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 Więcej opcji udostępniania...
Sutikku Opublikowano 21 Marca 2015 Udostępnij Opublikowano 21 Marca 2015 Toć to praktycznie ten sam kod tylko, że robisz multum zmiennych. Nie mam pytań. 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ę