Skocz do zawartości

Kilka pytań od Bedzioma


Rekomendowane odpowiedzi

A co, też se zrobię zbiór!

 

1. Robię dla bota trzy punkty orientacyjne, do których ma podchodzić. Gdy już podejdzie do któregoś, ma sobie z pozostałych wybrać jeden i do niego iść.

Kod w kolizji jednego z takich punktów z botem:

GML
if kol=0

{kol=1

alarm[0]=1*room_speed // tam jest po prostu "kol=0"

other.cel=choose(1,2)

A w bocie w Step:

GML
if cel=1

{mp_potential_step(cel1.x,cel1.y,4,0)

// etc z każdym celem</span>

Problem jest taki, że bot nie idzie do przykładowego cel1, tylko się zatrzymuje przy poprzednim i już tak stoi. Gdzie tu błąd?

2. Czy jak robię path to mogę ustawić w obiekcie, który się po nim porusza, aby gdy coś mu stoi na przeszkodzie, ominął taki obiekt i potem wrócił do patha? Jeśli tak, to jak?

 

Ofc napiszę później więcej pytań.

Odnośnik do komentarza
Udostępnij na innych stronach

2. Chyba nie ścieżka to ścieżka jak przerwiesz ją to nie możesz jej kontunuować ale nie jestem tego pewien. ;P

Można wznawiać ścieżki. O tak:

 

GML
position = path_positionprevious;

path_start( jakis_path, speed, endaction, absolute );

path_position = position;

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Skoro są 3 punkty, czemu losuje 2? I czemu cel1 nie ma zmienianej wartości? Poza tym, 1 i 2 to nie są ID obiektów do których można iść, te zaczynają się od większych liczb...

Odnośnik do komentarza
Udostępnij na innych stronach

kolizja z obj_cel (wystarczy jeden obiekt, nie musisz miec cel1,cel2,cel3,cel4 itd)

GML
if(kol==0){

while(other.cel==id){

other.cel=instance_find(obj_cel,irandom(instance_number(obj_cel)-1))

}

kol=1

alarm[0]=30

}

with(other){

move_toward_point(cel.x,cel.y,3)

}

Odnośnik do komentarza
Udostępnij na innych stronach

Nie kumam, w Twoim przykładzie działa, a u mnie - nie, a wkleiłem to samo, poza zmianą move_towards_point na mp_potential_step.

 

Ew. jak zmieniłem na to move_... to dalej się zacina, aczkolwiek wtedy lata z obracaniem się na wszystkie strony. Na debugu odpaliłem i x, y i hspeed mu cały czas lata.

Żadna inna akcja w tym oWrog nie korzysta ze zmiennej cel, nie ma jej też żaden inny obiekt.

 

Dafaq?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

O, siema znowu.

 

Mam akcję, że gracz spawnuje samolot, który w odległości 48px od niegp ma zrzucić spadochron. Samolot normalnie przelatuje przez planszę nad graczem, ale cholernego spadochronu nie zrzuca.

 

Create:

GML
direction=point_direction(x,y,o_playah.x,o_playah.y)

speed=16

alarm[0]=0.5*room_speed // tam jest to samo, co w pierwszej linijce</span>

 

Step:

GML
if distance_to_object(o_playah)=48

{instance_create(x,y,oParachute)}

 

if distance_to_object(o_playah)=1500

{indes()} // instance_destroy()</span>

 

Why?

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