cysior Opublikowano 31 Października 2012 Udostępnij Opublikowano 31 Października 2012 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 Więcej opcji udostępniania...
ediepl Opublikowano 31 Października 2012 Udostępnij Opublikowano 31 Października 2012 Działa tak jak ma działać, zwraca id pierwszego napotkanego obiektu. Jeśli chcesz uzyskać efekt jak na obrazku zamień argumenty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 31 Października 2012 Administratorzy Udostępnij Opublikowano 31 Października 2012 btw, jak zwróci -1 bo nic nie znajdzie, gra sie wysypie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
cysior Opublikowano 31 Października 2012 Autor Udostępnij Opublikowano 31 Października 2012 global.copozl=collision_line(x,y,0,y,obj_2,1,1) Jezeli x gracza(x >0), to start czyli lnia sprawdzania powinna isc od prawej strony do lewej, a na sytuacji 1,3 i 4 ( na obrazku) to nie działa tak jak chce, bo jak widac przechodzi przez objekty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 31 Października 2012 Udostępnij Opublikowano 31 Października 2012 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 Więcej opcji udostępniania...
ediepl Opublikowano 31 Października 2012 Udostępnij Opublikowano 31 Października 2012 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 Więcej opcji udostępniania...
cysior Opublikowano 31 Października 2012 Autor Udostępnij Opublikowano 31 Października 2012 Dzięki wam wszystkim za odpowiedzi, teraz postaram sie rozwiązać problem poprzez materiały dostarczone przez was :P 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ę