Pablo-GM Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 Witam mam problem , robię shotguna do mej gry i chciałem zrobić "przerwę" między pociskami co uzyskałem ? 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 Więcej opcji udostępniania...
lenin Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 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 Więcej opcji udostępniania...
Pablo-GM Opublikowano 22 Lutego 2010 Autor Udostępnij Opublikowano 22 Lutego 2010 Lenin źle mnie zrozumiałeś , otóż nie wykonuje się alarm. Powinna być przerwa między pociskami o 10 sek, a wygląda to jak wygląda. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 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 Więcej opcji udostępniania...
Pablo-GM Opublikowano 22 Lutego 2010 Autor Udostępnij Opublikowano 22 Lutego 2010 No niestety nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 GML if alarm[0]=1= then alarm[0]=10 ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 GML alarm[0]=10*room_speed ? 10 Sekund, tak? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 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 Więcej opcji udostępniania...
Pablo-GM Opublikowano 22 Lutego 2010 Autor Udostępnij Opublikowano 22 Lutego 2010 Niestety nie , jestem w szoku bo ogólnie mój kod wygląda stosunkowo dobrze o_o Roki byłem pewien , że zadziała : / Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OriPL Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 a co masz umieszczone w Alarm[0] ?? Edit: Witam ponownie po dłuższej nieobecnosci na forum :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 22 Lutego 2010 Autor Udostępnij Opublikowano 22 Lutego 2010 Oczywiście GML shoot=true Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 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 Więcej opcji udostępniania...
lenin Opublikowano 22 Lutego 2010 Udostępnij Opublikowano 22 Lutego 2010 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 Więcej opcji udostępniania...
Roki Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 Ale alarm[0]=10, to nie jest 10 sekund lol! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 Zrób zamiast alarma GML timer -= 1; if(chcestrzelac && timer <= 0) { strzela timer = 10; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
4tk Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 10 to nie 10 sekund ._. Jak już to coś takiego: alarm[0]=10*room_speed Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cekol Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 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 Więcej opcji udostępniania...
Pablo-GM Opublikowano 23 Lutego 2010 Autor Udostępnij Opublikowano 23 Lutego 2010 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 Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 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 Więcej opcji udostępniania...
mipo57 Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 if global.uzyto=true { shoot=true } czyli warunek będzie zawsze prawdziwy przez co shoot zawsze będzie true zmień np. na coś takiego if global.uzyto=true { shoot=true global.użyto=false } edit: znowu za późno :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 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 Więcej opcji udostępniania...
donway Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 a może w alarm[0] daj GML shoot = true; alarm[0]=10*room_speed; ?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 23 Lutego 2010 Autor Udostępnij Opublikowano 23 Lutego 2010 Zmienna global.uzyto odpowiada za podnoszenie broni , więc wasze rozwiązanie odpada. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
4tk Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 a czy tak trudno zmienić nazwę zmiennej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 A po co zmieniać? Jak mu się taka podoba, niech ma. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 dodaj nową np: if keyboard_check(vk_enter) && distance_to_object(narzedzia_o) < 20 { global.uzyto=true } if global.uzyto=true and alamakota=true { shoot=true alamakota=false } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 23 Lutego 2010 Udostępnij Opublikowano 23 Lutego 2010 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 Więcej opcji udostępniania...
Pablo-GM Opublikowano 23 Lutego 2010 Autor Udostępnij Opublikowano 23 Lutego 2010 Dziękuję Dawidds za pomoc , zamykam. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi