Skocz do zawartości

Strzelanie z obydwu stron


lvla2y

Rekomendowane odpowiedzi

Witam ponownie , mam mały problem ze strzelaniem , chciałbym żeby mój bohater strzelał z obydwu stron .

Ponieważ mój Bohater strzela tylko w prawo , a chciałbym też żeby strzelał w lewo , oczywiście znam kod do strzelania w lewo tylko nie umiem tego zrobić. -[ jak jego twarz jest w lewo strzela w lewo, jak w prawo to strzela w prawo ]-

Odnośnik do komentarza
Udostępnij na innych stronach

zrob zmienna:

kierunek

 

i jesli klikniesz vk_right to kierunek='prawo'

a jesli vk_left to zmienna kierunek='lewo'

 

i przy strzelaniu sprawdzaj

 

if strzelanie ........

{

if kierunek='prawo' instance_create(x,y,obj_pociskprawo) else instance_create(x,y,obj_pocisklewo)

blebleble :D

}

Odnośnik do komentarza
Udostępnij na innych stronach

to zrób, że jak klikasz strzałke w prawo to

kierunek = 1

strzalke w lewo to

kierunek = 2

 

pod control daj

instance_create(x,y,pocisk)

 

w create pocisku daj

if(kierunek = 1) direction = point_direction(x,y,x+20,y)

else direction = point_direction(x,y,x-20,y)

speed = 10

 

draw:

draw_sprite_ext(sprite_index,-1,x,y,image_xscale,image_yscale,direction,image_blend,image_alpha)

Odnośnik do komentarza
Udostępnij na innych stronach

Jak macie problem to piszcie dokładnie, bo ja przynajmniej nie czytam w myślach :) Dam Ci cały kod, bo nie chcę mi się tłumaczyć :P

GML
//create

kierunek=0; //0-prawo, 1-lewo

//step

if(/*warunek wuszania w prawo jaki tam masz*/)

{

kierunek=0;

//inne akcje

}

else if (/*warunek wuszania w lewo jaki tam masz*/)

{

kierunek=1;

//inne akcje

}

 

if(keyboard_check_pressed(/*klawisz strzalu*/))

{

p=instance_create(x,y,pocisk)

p.direction=kierunek*180;

p.speed= //jaks tam wartosc predkosci

}

:)
Odnośnik do komentarza
Udostępnij na innych stronach

Wpisałem ten kod tak:

GML
//create

kierunek=0; //0-prawo, 1-lewo

//step

if(P)

{

kierunek=0;

//inne akcje

}

else if (L)

{

kierunek=1;

//inne akcje

}

 

if(keyboard_check_pressed(vk_control))

{

p=instance_create(x,y,object16)

p.direction=kierunek*180;

p.speed=5

}

 

I coś mi nie chce działać..

Odnośnik do komentarza
Udostępnij na innych stronach

dałem w create:

GML
kierunek=0; //0-prawo, 1-lewo</span>

 

a w stepie:

 

GML
if(P)

{

kierunek=0;

//inne akcje

}

else if (L)

{

kierunek=1;

//inne akcje

}

 

if(keyboard_check_pressed(vk_control))

{

p=instance_create(x,y,object16)

p.direction=kierunek*180;

p.speed=5

}

 

tak L i P , to zmienne klawisza vk_left i vk_right

Odnośnik do komentarza
Udostępnij na innych stronach

No czy klawisz jest nacisnięty, czy został naciśnięty, czy został opuszczony, to sa od tego odpowiednie funkcje:

keyboard_check(klawisz) - czy przycisk jest trzymany (czyli jak nacisniesz spacje to cały czas będzie się akcja wykonywać)

keyboard_check_pressed(klawisz) - czy został nacisniety w ostatnim stepie (czyli jak nacisniesz spacje np. to akcja wykona sie raz dopóki nie naciśniesz drugi raz)

keyboard_check_released(klawisz) - czy został "puszczony" w ostatnim stepie (czyli jak puścisz spacje np. to akcja wykona sie)

Jak chcesz sprawdzać czy gracz coś nacisnął to pakujesz jedną z tych funkcji w if i gotowe ;)

 

GML
//create

kierunek=0; //0-prawo, 1-lewo

//step

if (keyboard_check(vk_right))

{

kierunek=0;

//inne akcje

}

else if (keyboard_check(vk_left))

{

kierunek=1;

//inne akcje

}

 

if(keyboard_check_pressed(vk_control))

{

p=instance_create(x,y,object16)

p.direction=kierunek*180;

p.speed=5

}

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