Skocz do zawartości

Zablokowane Ciągłe strzelanie


Rekomendowane odpowiedzi

Witam mam problem , robię shotguna do mej gry i chciałem zrobić "przerwę" między pociskami co uzyskałem ?

screeeeeeeen.png

A o to kod który napisałem:

Global Left Button :

GML
if shoot = true

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=image_angle+random(15)-7.5

v.image_angle=image_angle

shoot = false

alarm[0] = 10

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
//create:

shot_dir=noone

//Global Left Button:

shot_dir=image_angle-10

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=shot_dir

v.image_angle=image_angle

shoot = false

alarm[0] = 10

shot_dir+=5

}

Na przykład tak :)

Oczywiście, jeśli o to Ci chodziło

Odnośnik do komentarza
Udostępnij na innych stronach

aaa

Teraz zauważyłem, całe repeat umieść w bloku {} czyli:

GML
if shoot = true

{

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=image_angle+random(15)-7.5

v.image_angle=image_angle

shoot = false

alarm[0] = 10

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

może błąd jest gdzieś indziej bo jedyne 2 błędy które wystąpiły w kodzie początkowym to umieszczenie alarm-a w repeat i nie umieszczenie wszystkiego w klamrach więcej błędów po prostu nie ma. Ja to zrobiłem z tym kodem i wszystko jest ok

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if shoot = true

{

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=image_angle+random(15)-7.5

v.image_angle=image_angle

shoot = false

if alarm[0]=-1 alarm[0]=10

}

}

Teraz już napewno musi działać

E: Chociaż jednak w tym wypadku nie w tym tkwi problem. Może masz coś w tym obiekcie, co stopuje wykonanie tego alarmu? Podaj show information

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if shoot = true

{

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=image_angle+random(15)-7.5

v.image_angle=image_angle

}

shoot = false

alarm[0] = 10*room_speed

}

Odnośnik do komentarza
Udostępnij na innych stronach

Information about object: obj_bohater

GML
Sprite: normal

Solid: true

Visible: true

Depth: -1

Persistent: false

Parent: <no parent>

Mask: <same as sprite>

 

Create Event:

set variable shoot to false

execute code:

 

shot_dir=noone

 

Alarm Event for alarm 0:

execute code:

 

shoot=true

 

Step Event:

execute code:

 

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

if keyboard_check(vk_enter) && distance_to_object(narzedzia_o) < 20

{

global.uzyto=true

}

if global.uzyto=true

{

shoot=true

}

 

Mouse Event for Glob Left Button:

if sprite_index is equal to strzelba_s

execute code:

 

if shoot = true

shot_dir=image_angle-10

{

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=image_angle+random(15)-7.5

v.image_angle=image_angle

shot_dir+=5

}

shoot = false

alarm [0] = 10*room_speed

}

 

I nadal nic : )

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if keyboard_check(vk_enter) && distance_to_object(narzedzia_o) < 20

{

global.uzyto=true

}

if global.uzyto=true

{

shoot=true

}

W Step jest błąd, zrób tak:

GML
if keyboard_check(vk_enter) && distance_to_object(narzedzia_o) < 20

{

global.uzyto=true

}

if global.uzyto=true

{

shoot=true

global.użyto = false

}

Mniej więcej :)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
image_angle=point_direction(x,y,mouse_x,mouse_y)

if keyboard_check(vk_enter) && distance_to_object(narzedzia_o) < 20

{

global.uzyto=true

}

if global.uzyto=true

{

shoot=true

global.uzyto=false;

}

 

 

GML
if shoot = true

{

shot_dir=image_angle-10

repeat(5)

{

v=instance_create(x+lengthdir_x(4,16),y+lengthdir_y(5,9),obj_bullet)

v.speed=9

v.direction=image_angle+random(15)-7.5

v.image_angle=image_angle

shot_dir+=5

}

alarm[0] = -1 alarm [0] = room_speed;

shoot = false

}

 

jeżeli room_speed jest równe 30, to jak wpiszesz alarm[0]=10 to strzelisz 3 razy na sekundę, a jak wpiszesz alarm[0]=30 to strzelisz raz na sekundę.

Odnośnik do komentarza
Udostępnij na innych stronach

W ogóle po kija tutaj dodatkowa zmienna odpowiedzialna za możliwość wystrzału, skoro i tak wszystkos ię na alarmie opiera - jak nie chcesz tworzyć alarmu "własnego" to sprawdzaj przy strzale czy alarm[0] <= 0, a przy udanym strzale ustawiaj go na te 10.

 

A na chama to wywal

GML
if global.uzyto=true

{

shoot=true

}

, bo i tak nie widzę sensu tego kodu za bardzo.
Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...