TrooP Opublikowano 27 Maja 2014 Udostępnij Opublikowano 27 Maja 2014 Sytuacja wygląda tak: Ptak leci nad jakimś terenem generowanym z kostek. W momencie kiedy gracz kliknie chciałbym, żeby z kostką bezpośrednio pod ptakiem coś się działo (np. pęka i znika). Tak naprawdę potrzebuje współrzędnej kostki, która jest najbliżej ptaka, ale bezpośrednio pod nim ponieważ może być sytuacja, że ptak lecąc obok góry będzie miał bliżej (jeśli użyjemy instance_nearest) szczyt tej góry niż kostkę poniżej. Póki co najbliżej rozwiązania byłem wystrzeliwując obiekt w dół z prędkością x+=100 do momentu zetknięcia się z kostką, ale jest to bardzo mało precyzyjne, ponieważ przy takiej prędkości kolizja z kostką czasem nie zachodzi czasem zachodzi z kolejną itp. Ma ktoś jakiś pomysł? Chodzi mi raczej o coś prostego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 27 Maja 2014 Udostępnij Opublikowano 27 Maja 2014 :lol2: Masz pozycję x i y ptaka? To znajdź kostkę która jest na tej pozycji. Po prostu nie bierz pod uwagę osi z. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TrooP Opublikowano 27 Maja 2014 Autor Udostępnij Opublikowano 27 Maja 2014 Tak mam pozycję x,y ptaka, ale kostki są ułożone jak w Terrari czyli wiele na sobie. jeśli wezmę pozycję x kostki to jest ich powiedzmy 10. Rozumiem, że potem mogę sprawdzać pozycję y i najmniejsza to będzie ta jedyna, ale przy 400 kostkach na ekranie nie chcę do nich "wkładać" kodu, który sprawdza ich aktualną pozycję - no chyba że inaczej się nie da ale nie wierzę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ereg Opublikowano 27 Maja 2014 Udostępnij Opublikowano 27 Maja 2014 jesli kostky so naprz 32pix, ale ptak leci y+=1(lub cos tam), wystarzcy ze bezdzie wybrana 1 kostka z dwoch? w chwili kiedy ptak przekracza granice miedzy kostkami, jest wiecej mozliwych zadan co ma sie robic :) krajina kostkowa jest chyba neskonczona i przesuwa sie na przeciw ptakowi, niemyle sie? ogolnie to chyba uzylbym ds_ structury do przechowania pozycji top kostek i porownywal o_ptak.x z pozycjo w ds_ structurze mozna by tez uzyc testow jak: - position_meeting(x,y,obj) albo - collision_point(x,y,obj,prec,notme) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 27 Maja 2014 Udostępnij Opublikowano 27 Maja 2014 GML yy=0 do { i=instance_position( x, y+yy, obj ); yy+=16 //wysokość bloczka } until(i<0) //i to twoja instance</span> ps: Pierwszego postu tak nie zrozumiałem że wydawało mi się że chcesz to zrobić w 3D. W 2D wystarczy Ci tylko x. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TrooP Opublikowano 27 Maja 2014 Autor Udostępnij Opublikowano 27 Maja 2014 Dzięki - to ostatnie powinno wystarczyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 27 Maja 2014 Administratorzy Udostępnij Opublikowano 27 Maja 2014 Ja bym tam jeszcze dodał warunek dla jakiegoś granicznego Y, żeby jak zabraknie bloczków nie wpadło w nieskończona pętlę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 27 Maja 2014 Udostępnij Opublikowano 27 Maja 2014 gnysek: klikałem :lubieto: w twojej sygnaturce! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 27 Maja 2014 Udostępnij Opublikowano 27 Maja 2014 A ja bym użył algorytm wyszukiwania binarnego, który zamieścił niegdyś tutaj Platyna. 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ę