Skocz do zawartości

Odbicia


Rekomendowane odpowiedzi

Witam, trochę już jestem na forum i po długiej przerwie zacząłem sobie przypominać gm'a także wybaczcie mi za głupie pytanie :) Ale do rzeczy:

mam problem z napisaniem kodu, który pozwoli na toczenie się piłki po wierzchu obiektu, a przy kolizji ze ścianą boczną na jej odbicie...

dokładniejsze dane: sprite gracza jak i bloku mają wymiary 24*24 piksele i są pełnymi kwadratami.

 

re5j.png

 

od czerwonej linii (ściany) piłka ma się odbijać natomiast po żółtej może swobodnie się poruszać. Piłka również może skakać.

 

Dzięki za pomoc :)

Odnośnik do komentarza
Udostępnij na innych stronach

re5j.png

od czerwonej linii (ściany) piłka ma się odbijać natomiast po zielonej może swobodnie się poruszać.

Ale tu nie ma zielonej linii :P

 

Sprawdzaj najpierw kolizje z podłożem/sufitem:

GML
// pseudokod

nowybbox = bbox + wektor_predkosci.y;

if( nowybbox nie koliduje ze sciana )

bbox = nowybbox;

else {

bbox = granicznybbox; ( lub dokładniejsze sprawdzanie kolizji poprzez binarne wyszukiwanie )

wektor_predkosci.y = 0;

}

 

Odbijanie od ścian:

GML
// pseudokod

nowybbox = bbox + wektor_predkosci.x;

if( nowybbox nie koliduje ze sciana )

bbox = nowybbox;

else {

bbox = granicznybbox; ( lub dokładniejsze sprawdzanie kolizji poprzez binarne wyszukiwanie )

wektor_predkosci.x *= -.4; ( odwrócenie wektora, oraz zmniejszenie jego wartości o 60% )

}

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ę...