Mateusz Nejman Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 Cześć! Sklejam sobie grę 3D i w niej mam problem: gracz chodzi po obiekcie o_blok nad graczem też jest obiekt o_blok jak sprawdzić zmienną 'z' z tego obiektu nad graczem? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Compi Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 W kolizji dajesz other.z Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 ale on w tym czasie koliduje z 2 takimi obiektami. Więc musiał by przelecieć po obu i sprawdzić oba 'z' i wybrać ten większy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 16 Kwietnia 2014 Autor Udostępnij Opublikowano 16 Kwietnia 2014 ale on w tym czasie koliduje z 2 takimi obiektami. Więc musiał by przelecieć po obu i sprawdzić oba 'z' i wybrać ten większy. Jak sprawdzać w obu obiektach? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 Jeżeli sprawdzasz kolizję to event wykonuje się dla każdej kolizji. Czyli w twoim wypadku 2 razy. Kolejność natomiast jest wg creation order, czyli następuje wg kolejności w jakiej pojawiły się w room. Moja rada to iterowanie poprzez wszystkie instance obiektu, sprawdzanie czy następuje kolizja, oraz wykonywanie: GML global.z=max(global.z,o_blok.z) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 16 Kwietnia 2014 Autor Udostępnij Opublikowano 16 Kwietnia 2014 Jeżeli sprawdzasz kolizję to event wykonuje się dla każdej kolizji. Czyli w twoim wypadku 2 razy. Kolejność natomiast jest wg creation order, czyli następuje wg kolejności w jakiej pojawiły się w room. Moja rada to iterowanie poprzez wszystkie instance obiektu, sprawdzanie czy następuje kolizja, oraz wykonywanie:GMLglobal.z=max(global.z,o_blok.z) Dałem twój kod do kolizji gracza z o_blok i cały czas global.z jest równe 0 EDIT: a ten twój kod tyczy się też jeśli sprawdza kolizję z objektem 'parent'? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 16 Kwietnia 2014 Udostępnij Opublikowano 16 Kwietnia 2014 To ty powinieneś wiedzieć z czym masz kolizję. Poza tym max() sprawdza największą a ty być może chcesz najmniejszą min() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 17 Kwietnia 2014 Autor Udostępnij Opublikowano 17 Kwietnia 2014 No to może ja rozwinę swój problem. Mam obiekt o_gracz i jakieś tam obiekty. W każdym obiekcie są zmienne 'z' i 'z_top'. Jakieś tam obiekty mają jednego rodzica: o_blok. Szukam sposobu, żeby sprawdzić zmienną 'z' z jakiegoś tam obiektu, który jest wyżej gracza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 17 Kwietnia 2014 Udostępnij Opublikowano 17 Kwietnia 2014 Co znaczy wyżej? Ma mniejszą? Większą wartość? Być może problem jest już rozwiązany, ale źle interpretujesz dane. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Mateusz Nejman Opublikowano 17 Kwietnia 2014 Autor Udostępnij Opublikowano 17 Kwietnia 2014 Co znaczy wyżej? Ma mniejszą? Większą wartość? Wyżej to znaczy, że 'z' tego obiektu jest większa niż 'z' i 'z_top' gracza Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 17 Kwietnia 2014 Administratorzy Udostępnij Opublikowano 17 Kwietnia 2014 if other.z > z_top w evencie kolizji w graczu z blokiem, nawet jak są dwa obiekty na sobie. 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ę