Skocz do zawartości

gracz i wróg


Rekomendowane odpowiedzi

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

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

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

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

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

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

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