maciusiowo1 Opublikowano 3 Lutego 2008 Udostępnij Opublikowano 3 Lutego 2008 Witam! Dzisiejszy mój problem jest dla mnie dużym problemem(jak zresztą każdy XD). Chodzi mi o obliczenie odległości obiektu od obiektu, ale obiektów jest aż 4 (z czego 3 jako cel)."Pierwiastek z X do kwadratu i Y do kwadratu", ale wątpię żeby GM to obsługiwał. Proszę o szybką radę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shockah Opublikowano 3 Lutego 2008 Udostępnij Opublikowano 3 Lutego 2008 Odległość? GML near = instance_nearest(x,y,potwor_parent); dist = point_distance(x,y,near.x,near.y); I wszystkim potworom daj jako Parent obiekt wpisany instance_nearest. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciusiowo1 Opublikowano 3 Lutego 2008 Autor Udostępnij Opublikowano 3 Lutego 2008 Jakoś nie sądzę aby pocisk jakiegoś z 4 graczy wracał do niego... chociaż może dać tak, że omijany jest najbliższy tylko po najbliższym jest namierzany. Tak czy siak dzięki, ale tematu nie zamykam - może ktoś będzie miał coś jeszcze do powiedzenia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 3 Lutego 2008 Administratorzy Udostępnij Opublikowano 3 Lutego 2008 Jak to nie ma pierwiastków? power(x,n) Zwraca x do potęgi n. Zatem pierwiastek z czterech to GML power(4,1/2); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciusiowo1 Opublikowano 3 Lutego 2008 Autor Udostępnij Opublikowano 3 Lutego 2008 W Create pocisku mam: GML S1 = 0; S2 = 0; S3 = 0; S4 = 0; S5 = 0; S6 = 0; distA = 999999999999999999; distGK = 999999999999999999; distN = 999999999999999999; if(instance_number(Norton) == 1) { distN = point_distance(x,y,Norton.x,Norton.y); } if(instance_number(GKaspersky) == 1) { distA = point_distance(x,y,GKaspersky.x,GKaspersky.y); } if(instance_number(GKaspersky) == 1) { distGK = point_distance(x,y,GKaspersky.x,GKaspersky.y); } //SEKCJA PIERWSZA - N VS A if(distN > distA) { S1 = distA; } else { S1 = distN; } //SEKCJA DRUGA - GK VS A if(distGK > distA) { S2 = distA; } else { S2 = distGK; } //SEKCJA TRZECIA - GK VS N if(distGK > distN) { S3 = distN; } else { S3 = distGK; } //SEKCJA PIERWSZA - S1 VS S2 if(S1 > S2) { S4 = S2; } else { S4 = S1; } //SEKCJA DRUGA - S1 VS S3 if(S1 > S3) { S5 = S3; } else { S5 = S1; } //SEKCJA TRZECIA - S2 VS S3 if(S1 > S3) { S6 = S3; } else { S6 = S1; } //SEKCJA KONCOWA - SPRAWDZANIE POWTORKI if(S4 == S5) { dist = S4; } if(S5 == S6) { dist = S5; } if(S4 == S6) { dist = S4; } a w Stepie: GML if(instance_number(Norton)!=0) { if(dist == point_distance(x,y,Norton.x,Norton.y)) { mp_potential_step(Norton.x,Norton.y,5,0); } } else { instance_destroy() } przed tym jeszcze mam obracanie pocisku o 360 stopni a potem kasacja... ale mam tutaj problem gdyż pocisk tylko się kręci te 360 stopni i się kasuje ale się nie porusza. Co mam tu poprawić? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kryniak Opublikowano 3 Lutego 2008 Udostępnij Opublikowano 3 Lutego 2008 Weź trochę bardziej "luźnij" warunek dist == point_distance(x,y,Norton.x,Norton.y) bo wątpię, czy będzie sie zgadzać, co do piksela. Może zastosuj to: (dist div 16) == (point_distance(x,y,Norton.x,Norton.y) div 16). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciusiowo1 Opublikowano 3 Lutego 2008 Autor Udostępnij Opublikowano 3 Lutego 2008 dobra dzięki: GML (dist div 720) == (point_distance(x,y,Norton.x,Norton.y) div 720) 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ę