Skocz do zawartości
Mateusz Nejman

3D: Sprawdzanie zmiennej z bloku nad graczem

Rekomendowane odpowiedzi

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?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

W kolizji dajesz other.z

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
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'?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

To ty powinieneś wiedzieć z czym masz kolizję. Poza tym max() sprawdza największą a ty być może chcesz najmniejszą min()

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Co znaczy wyżej? Ma mniejszą? Większą wartość?

Być może problem jest już rozwiązany, ale źle interpretujesz dane.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

if other.z > z_top w evencie kolizji w graczu z blokiem, nawet jak są dwa obiekty na sobie.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×