ussnimitz Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 Mam taki kod w obj_enemy_soldier: w Create GML strzal = 1; w alarm 0 GML strzal = 1; w step GML image_angle = direction; if distance_to_object(o_gracz)<400 { move_towards_point(o_gracz.x,o_gracz.y,1) } if distance_to_object(o_gracz)<300 { if( strzal ) { var i; i = instance_create( x, y, obj_pocisk2 ); i.speed = 10; strzal = 0; alarm[0] = room_speed * 30; } } Proszę o poprawę kodu ponieważ komputer strzela tylko raz a potem nic. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 W Alarm 0 dopisz: GML alarm[0] = room_speed * 30; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 Mimek pisze źle, ponieważ wtedy wróg będzie wystrzeliwał dwa pociski naraz. image_angle = direction; if distance_to_object(o_gracz)<400 { move_towards_point(o_gracz.x,o_gracz.y,1) } if distance_to_object(o_gracz)<300 { if( strzal ) { var i; i = instance_create( x, y, obj_pocisk2 ); i.speed = 10; strzal = 0; alarm[0] = room_speed * 30; } } Proszę o poprawę kodu ponieważ komputer strzela tylko raz a potem nic. Zamiast "alarm[0] = room_speed * 30" wpisz "alarm[0]=|czas|*(room_speed/fps)" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ussnimitz Opublikowano 2 Lipca 2009 Autor Udostępnij Opublikowano 2 Lipca 2009 wpisałem tak: GML alarm[0]=120*(room_speed/fps) i wyświetla się błąd: Divisoin by 0 Edit: Napisałem tak jak mimek mówił i nic się niezmieniło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 Mimek pisze źle, ponieważ wtedy wróg będzie wystrzeliwał dwa pociski naraz. Zamiast "alarm[0] = room_speed * 30" wpisz "alarm[0]=|czas|*(room_speed/fps)" Co?! wpisując twój kod będzie mnożył czas razy jeden, no chyba, że FPS spadnie... Wyobraź to sobie: Alarm 0 ma wynosić |czas| pomnożony przez |room_speed, który z reguły ma 30| podzielić na FPS czyli ilość klatek na sekundę, czyli maksymalnie = room_speed. Edycja: Wpisz mój kod... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ussnimitz Opublikowano 2 Lipca 2009 Autor Udostępnij Opublikowano 2 Lipca 2009 Mimek wpisałem twój kod ale i tak oddaje 1 strzał a potem tylko za mną łazi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Axlii Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 w stepie GML if distance_to_object(o_gracz)<300 { if( strzal ) { var i; i = instance_create( x, y, obj_pocisk2 ); i.speed = 10; strzal = 0; alarm[0] = room_speed * 30; // <<<<<<<<<<<<<<<<<< } } zmień na alarm[0] = room_speed * co ile ma sekund strzelać. bo tak bedzie walił co 30 sekund 1 strzał Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawka83 Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 ni co 30 sekund tylko co 1! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 @Axil: No tak ma, zdaje się, że chce, żeby co trzydzieści sekund strzelał xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 To teraz wpisz mój kod. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ussnimitz Opublikowano 2 Lipca 2009 Autor Udostępnij Opublikowano 2 Lipca 2009 alarm[0] = room_speed * 30; co oznacza "i" i "b" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 Dajmy mu jeden kod i nie kłóćmy się. @ussnimitz: Powiedz nam, co ma robić ten kod :) Jeśli chcesz, aby go gonił i co 1 sekundę strzelał to wpisujesz tak w STEP: GML if distance_to_object(o_gracz)<300 { if( strzal ) { var i; i = instance_create( x, y, obj_pocisk2 ); i.speed = 10; strzal = 0; alarm[0] = room_speed * 1; } } A w alarm 0 dopisujesz do tego co masz: GML alarm[0] = room_speed * 1; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ussnimitz Opublikowano 2 Lipca 2009 Autor Udostępnij Opublikowano 2 Lipca 2009 już sprawdzam ten kod Edit: strzela po 2 pociski Już sobie z kierunkiem poradziłem tylko dalej strzela po 2 pociski Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 A nie mówiłem? :) Dopisz do step, tam, gdzie "i.speed = 10": i.direction = point_direction(i.x,i.y,|cel|.x,|cel|.y)" EDIT: i nie dopisuj do alarmu 0 "alarm[0] = room_speed * 1;". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ussnimitz Opublikowano 2 Lipca 2009 Autor Udostępnij Opublikowano 2 Lipca 2009 a zamiast litery "i" co wpisać jak zostawiłem to było to samo a jak pocisk to strzelało w różne kierunki POŁĄCZONO: Dziękuje, sposób Mimka jest dobry tylko musiałem parę rzeczy usunąć no ale trudno przynajmniej działa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 2 Lipca 2009 Udostępnij Opublikowano 2 Lipca 2009 Sam wpisałeś: "i = instance_create( x, y, obj_pocisk2 ) i.speed = 10". Możesz zamiast mojego "i"wpisać: "instance_nearest(x,y,obj_pocisk2).speed = 10 instance_nearest(x,y,obj_pocisk2).direction = point_direction(instance_nearest(x,y,obj_pocisk2).x, instance_nearest(x,y,obj_pocisk2).y,|cel|.x,|cel|.y)". A tamtą linijkę na początku postu zostaw. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ussnimitz Opublikowano 2 Lipca 2009 Autor Udostępnij Opublikowano 2 Lipca 2009 powiem wam coś Mimek i Muuuuczek567 Żeby zadziałało musiałem wasze obydwa kody wkleić także każdy pomógł w 50% 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ę