Skocz do zawartości

Wykrywanie punktu kolizji względem toru lotu piłki.


Rekomendowane odpowiedzi

Mam dość ciężkie pytanie. Otóż piszę teraz grę. Nie chcę jej opisywać - ale będzie podobna do bilarda :P

 

Ale do rzeczy:

 

W prawdziwym bilardzie, kiedy moja bila uderzy centralnie w drugą bilę - druga przejmnie prędkość mojej a moja stanie. Lecz, kiedy uderzę moją trochę na prawo od drugiej - druga poleci na lewo a moja na prawo.

 

Macie rysunek:

3257f91f25027241.png

 

Chciałbym napisać sobie funkcję, która zwraca przesunięcie mojej bili na prawo lub lewo względem środka drugiej bili. Chciałbym tą funkcję wywoływać w mjej bili, przy kolizji w drugą bilą.

 

Wydaje się łatwo: sprawdzać pozycję y mojej bili i drugiej bili.

 

Jednagże: Bile nie zawsze lecą do góry. Moja bila może uderzyć w bilę wroga pod kątem np. 39 stopni.

Myślałem, jakby zastosować do tego direction, ale... bez rezultatu.

 

Z góry dzięki za pomoc :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

Nie, nie o to mi do końca chodzi. Punkt padania = koątowi dbicia dla kuli chyba bym se poradził zrobić.

 

9eeb56e1f883e2bf.png

Coś takiego.

 

Edit: jakby bila uderzyła w lewą część tej drugiej bili wartosć byłąby ujemna.

 

Chcem po prostu sprawdzić, w którą część bili uderzyla moja bila.

Odnośnik do komentarza
Udostępnij na innych stronach

Chcem po prostu sprawdzić, w którą część bili uderzyla moja bila.

 

Kolizja

GML
promien = sprite_get_height( sKula ) / 2;

dir = point_direction( x, y, other.x, other.y );

 

xKolizja = x + lengthdir_x( promien, dir );

yKolizja = y + lengthdir_y( promien, dir );

 

?

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli chcesz zrobić, że bila odbija się od drugiej to warto tu zastosować podążanie za pozycją obiektu, a raczej uciekanie od niej, czyli ujemne podążanie :P

 

Tutaj example:

https://gmclan.org/up2782_11_bilard.html

 

PPM - odbicie bili

enter - restart rooma

 

[edit]

 

Chciałbym napisać sobie funkcję, która zwraca przesunięcie mojej bili na prawo lub lewo względem środka drugiej bili.

Bitte sehr

https://gmclan.org/up2782_11_odleglosc.html

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
  • Ostatnio przeglądający   0 użytkowników

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