Skocz do zawartości

Collision Line, problem


cysior

Rekomendowane odpowiedzi

Nie dokońca rozumiem dlaczego to nie działa, prosze o naprowadzenie. Rysunek przedstawiający mój problem.

https://www.dropbox.com/s/genpm09lfeugsph/pomocy.png

 

Step

 

GML
global.copozp=collision_line(x,y,room_width,y,obj_2,1,1)

global.copozl=collision_line(x,y,0,y,obj_2,1,1)

 

 

 

Draw

 

GML
draw_line(x,y,global.copozp.x,y)

draw_line(x,y,global.copozl.x+32,y)

Odnośnik do komentarza
Udostępnij na innych stronach

zwraca id pierwszego napotkanego obiektu

I w tym jest problem, funkcja ci nie zwróci id najbliższego obiektu tylko tego o bodajże najniższym id.

 

Użyj tego algorytmu: https://gmclan.org/index.php?czytajart=74 W komentarzach jest przykład zrobiony przez Snake'a zajrzyj do niego.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm faktycznie to jest dziwne, spróbuj użyć tego kodu:

GML
pre = x;

while(1)

{

global.copozl = collision_line(pre, y, pre-16, y, object1, 1, 1);

if( global.copozl > 0 || pre-16 < 0 )break;

pre -= 16;

}

 

EDIT: Możesz użyć także tego kodu http://www.gmlscripts.com/script/collision_line_first

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