maciej-01 Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Cześć! Mam problem. Napisałem sobie funkcję Szukaj, która służy mi jako funkcja do szukania w odległości a do b, lecz nie działa :mellow: . Funkcja zwraca noone, niestety. Oto kod Funkcji: // Skrypt Szukaj // Użycie: // Szukaj(co,odlegloscmin,odlegloscmax) // Funkcja Zwraca noone lub id objektu. co = argument0; mins = argument1; maxs = argument2; b = x; c = y; d = x; e = y; a = noone; stanx = false; stany = false; a = instance_nearest(d,e,co); if(a = noone){ return noone; } while( not((distance_to_object(a) > mins) and(distance_to_object(a) < maxs)) ){ if( stanx = false and stany = false){ d += 1; } else { if( stanx = true and stany = false){ e += 1; } else { return noone; } } if(d > room_height){ d = b; stanx = true; } if(e > room_width){ e = c; stany = true; } } Proszę o pomoc. Maciej-01. Edit: Post bez emotki. Muszę dodać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Slash (Pental) Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Wtf? Za co ma odpowiadać ta funkcja? Niewiele mówi "a do b"... Btw. Twój kod to jeden wielki syf. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Mam nadzieję, że dobrze zrozumiałem, że funkcja ma znaleźć obiekt, który stoi w odległości większej niż odległoscmin, i mniejszej niż odlegloscmax? GML var g,i; g = id i = -1 with(argument0) { if(distance_to_object(g)>argument1)&&(distance_to_object(g)<argument2) i = id } return i Przetestuję i sprawdzę, czy działa. E: działa doskonale :) E2: nawet nie zauważyłem, że to jest bardzo przydatne :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 27 Lutego 2010 Autor Udostępnij Opublikowano 27 Lutego 2010 dzięki, przyda mi się do min ^^ temat otwarty, bo mogę mieć jeszcze problemy... :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Ciekawi mnie, z czym? Toż to funkcja, którą chciałeś napisać, z tymi samymi parametrami. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 27 Lutego 2010 Autor Udostępnij Opublikowano 27 Lutego 2010 heh? twoja funkcja nie zwraca id objektu którego szukam. w objekcie test jest: x = mouse_x; y = mouse_y; a po kliknięciu jest: a = Szukaj(object0,0,100000); with(a){ instance_destroy(); } object 0 to fajne kółeczko. najbliższy object 0 się nie niszczy :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Zapewne dlatego, że "test" nie ma maski. Daj maskę albo zmień w skrypcie distance_to_object(g) na distance_to_point((g).x,(g).y) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Markar Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Nie lepiej najbliższe niszczenie zrobić tak: GML (step) obj=instance_nearest(x,y,object0) if distance_to_object(obj)<100 && distance_to_object(obj)>50 { with(obj)instance_destroy(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 27 Lutego 2010 Autor Udostępnij Opublikowano 27 Lutego 2010 kur nie, mina w mojej grze niszczy w kwadracie : P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 Jeśli ma zniszczyć wszystkie obiekty w okręgu, to zrób: GML var g; g = id with(argument0) { if(distance_to_object(g)>argument1)&&(distance_to_object(g)<argument2) instance_destroy() } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 27 Lutego 2010 Autor Udostępnij Opublikowano 27 Lutego 2010 nie działa :/ Muczek dać ci kod mojej gry? [GM 6.1 Pro] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 27 Lutego 2010 Udostępnij Opublikowano 27 Lutego 2010 To jest niemożliwe, u mnie działa doskonale. E: w kwadracie? No to tworzysz sprite'a kwadratu, na 1 step zmieniasz maskę na ten kwadrat i ustawiasz, że jeśli jakiśtam obiekt będzie w tym kwadracie, to go niszczy. Nie, nie musisz go dawać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
maciej-01 Opublikowano 27 Lutego 2010 Autor Udostępnij Opublikowano 27 Lutego 2010 już dałem kod :P przetestuję to z kwadratem dałem maskę i działa! Thanks for info ^_^ 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ę