Skocz do zawartości

nie znajdowanie drogi


Rekomendowane odpowiedzi

Siema. W step obiektu "sciezka" mam taki kodzik:

 

GML
droga=mp_grid_path(global.lol,pt,630,54,qniec.x,qniec.y,true)

if droga=0{

with(global.ostatni){instance_destroy()}

mp_grid_clear_all(global.lol)

mp_grid_add_instances(global.lol,wieza,false)

show_message('Nie znaleziono drogi')

}

 

No i teraz jeżeli nie wyszukało drogi to ma wywalić ostatnio postawiony obiekt (ten, przez który nie wyszukuje scieżki), potem wyczyścić patha i uzupełnić go od nowa, i wyświetlić ładne info.

 

Ale teraz stawiam gościa przecinającego patha i

najpierw wywala message (a ten ostatni jeszcze stoi co według mnie nie powinno mieć miejsca)

klikam ok i znów wywala message, ale tym razem ostatnia wieża jest już wywalona.

 

I teraz moje pytanie: dlaczego wywala message 2 razy?

Odnośnik do komentarza
Udostępnij na innych stronach

GML
droga=mp_grid_path(global.lol,pt,630,54,qniec.x,qniec.y,true)

if droga=0{

with(global.ostatni){instance_destroy()}

mp_grid_clear_all(global.lol)

mp_grid_add_instances(global.lol,wieza,false)

show_message('Nie znaleziono drogi')

}

 

To jest kompletnie nieoptymalne. Po co usuwać wszystkie komórki siatki i od nowa je dodawać, skoro można użyć mp_grid_clear(global.lol,kom_x,kom_y)?

 

mp_grid_clear i mp_grid_add nie czyści/uzupełnia patha, a jedynie tworzy mapę przeszkód, które path ma omijać.

 

Ta podwójnie wyświetlana wiadomość może mieć coś wspólnego z pewnego rodzaju bugiem w GM-ie (nie znam jego natury, trzeba się powołać na bardziej doświadczonych). Zdarzało mi się tak np. gdy źle używałem funkcji real()/string().

Odnośnik do komentarza
Udostępnij na innych stronach

mp_grid_clear_cell(global.lol,global.ostatni.x div 16,global.ostatni.y div 16)

 

tak? bo w ogóle nie czyści tej komórki, a wielkość komórek to 16

 

mp_grid_clear i mp_grid_add nie czyści/uzupełnia patha, a jedynie tworzy mapę przeszkód, które path ma omijać.

Wiem, miało być czyści,uzupełnia siateczkę.

 

 

E: Juz dziala.

Rozwiązaniem było

mp_grid_clear_rectangle(global.lol,x-8,y-8,x+8,y+8)

bo wiezyczka miała rozmier 32x32, a komórka w gridzie 16x16

 

E2: I po zmienieniu kodu z usuwająco wszystko a potem zapisaniu od nowa

na kasujący pojedyncze komórki przestał pojawiać się bug z podwójną tabelką

Pozdro! ;d

Odnośnik do komentarza
Udostępnij na innych stronach

piszem next post bo next problem ;d

 

Muuuuuczek-sensei!

W Twoim przykładzie znajdowaniedrogimoje.gmk jak zrobić, że mobki ładnie będą patrzeć sięprzed siebie?

 

Bo zrobiłem w stepie

GML
image_angle=point_direction(xprevious,yprevious,x,y)

 

i nic sie nie dzieje

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