Skocz do zawartości

Zablokowane Odległość między dwoma obiektami i rysowanie linii


Draconis

Rekomendowane odpowiedzi

Witam

Próbuję zrobić aby jeżeli odległość między graczem a celem jest mniejsza niż 100 rysuje się między nimi linia. Napisałem taki krótki kod

GML
if distance_to_object(cel) < 100

{

draw_line(gracz.x,gracz.y,cel.x,cel.y)

}

I działa on prawidłowo, lecz tylko wtedy jeżeli na planszy jest tylko jeden cel. Jeżeli jest ich więcej to linia jest rysowana zawsze do tego samego celu (nawet jeżeli warunek spełniony jest dla innego)

 

Szukam sposobu, aby linia była rysowana dla tego celu, który spełnia warunek, oraz jeżeli kilka go spełnia to rysowany jest odcinek do każdego.

 

Próbowałem kod umieścić w celu zamieniając distance_to_object(cel) na distance_to_object(gracz), lecz efekt jest identyczny.

Odnośnik do komentarza
Udostępnij na innych stronach

Umieść w obiekcie cel taki kod:

GML
if (distance_to_object(gracz) < 100)

draw_line(gracz.x,gracz.y,x,y)

 

Błąd jest spowodowany tym, że z tego co mi wiadomo jeśli istnieje kilka obiektów X nazwa X odnosi się do tego o najmniejszym id (tego co był stworzony jako pierwszy). Ale głowy za to sobie uciąć nie dam.

EDIT:

Alternatywnym rozwiązaniem było by umieszczenie w drawie Gracza takiego kodu:

GML
with(cel) //przeglądamy w "pętli" wszystkie obiekty cel

{

if (distance_to_object(other) < 100)

draw_line(x,y,other.x,other.y)

}

Odnośnik do komentarza
Udostępnij na innych stronach

To jest pytanie czy twierdzenie? Nie bardzo rozumiem.

 

Nie wiem czy to ci pomoże, ale są dwie funkcje do sprawdzania odległości:

distance_to_object() - odległość do wystąpienia kolizji czyli od krawędzi sprite'a do krawędzi sprite'a.

point_distance() - odległość między punktami (zwykle współrzędnymi obiektów)

Więc w praktyce pierwsza funkcja zwróci zwykle mniejszą odległość niż druga.

Ja polecam raczej używać tej drugiej jeśli nie do końca się rozumie różnicę i użycie pierwszej nie jest całkowicie zamierzone.

 

A jeśli to ci nie pomoże to sprecyzuj dokładniej to pytanie tak bym zrozumiał.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...