Skocz do zawartości
aurel

[java] Arkanoid

Rekomendowane odpowiedzi

pisze sobie arkanoida i utknęłam na pewnym zagadnieniu - odbicie piłki od rogu klocka. wykrywa mi to bardzo ładnie, ale co piłeczka właściwie powinna dalej zrobić...? jak znaleźć odpowiedni wzór na nowy kąt lotu piłeczki?

 

dodam może, że jeśli piłeczka leci w lewo to jest to kąt PI, w prawo - 0, w pionie PI/2. jeśli leci w dół to zazwyczaj jest to zapamiętane jako kąt ujemny, ale to już raczej nie ma znaczenia.

 

dany jest obecny kąt piłeczki no i oczywiście jej położenie i położenie klocka. aby nadgorliwi nie męczyli się nadaremnie podkreślam - kolizja jest wykrywana prawidłowo!

tylko tego odbicia wykminić nie mogę :/

Edytowane przez aurel

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

banalne, zdaje mi się. Jeśli piłeczka trafia w kant, no to co się dzieje... nie wiem czy dobrze nazywam prostą wychodzącą z wierzchołka (wektor normalny chyba), jest to prosta która ma ten sam kąt zarówno do poziomej jak i pionowej powierzchni klocka. Biorąc pod uwagę, że klocki w arkanoidzie są ułożone nazwijmy to prosto :), to wektor normalny zawsze będzie pod kątem pi/4 od osi pionowej i poziomej. Jeśli zatem piłeczka przyleci dokładnie pod kątem pi/4 do rogu to odbije się pod tym samym kątem. Jeśli kąt ten będzie wychylony od pi/4 to odbije się o tyle samo w drugą stronę. Gorzej z większymi kątami, bo powyżej pi/4 od wektora normalnego będzie się odbijać już chyba inaczej :)

 

Swoją drogą, trafienie idealnie w róg jest mało prawdopodobne, zawsze piłka trafia nieco w krawędź boczną, to też trzeba by uwzględnić. Gdzieś w książce nt gier komputerowych był napisany arkanoid, i oni zastosowali tam prosty mechanizm fizyki. Nie pamiętam dokładnie jak a książkę bym musiał wygrzebać, ale chyba problem odbić był załatwiony z dyńki że tak powiem przez physic engine :). Ale głowy nie dam.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mysle ze spokojnie mozesz zrobic to w ten sposob, ze jezeli pilka uderzy w rog lecac po torze wyznaczonym przez przedluzenie dwusiecznej kąta prostego znajdujacego sie w rogu klocka(czyli bedzie leciec pod katem 45 stopni do poziomej i pionowej krawedzi klocka, czyli po prostej y=x ) to powinna ona zmienic jedynie zwrot, kierunek pozostaje ten sam, w pozostalych przypadkach zrobilbym tak zeby odbijala sie jak od zwyklej sciany w przypadku zderzenia doskonale sprezystego(kat odbicia=kat padania), wizualnie to by bylo tak:

 

Dołączona grafika

 

Pozdrawiam

Edytowane przez moreno

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jesteś pewien? Mi się wydaje, że to co narysowałeś, to nie jest idealne uderzenie w róg tylko uderzenie w krawędź klocka.

Wg Twojej teorii piłka lecąca czerwoną trasą się zmieni zwrot na przeciwny. A co się stanie jak kulka będzie leciała odchylona o 1° od czerwonej trasy? Twoja teoria mówi że odbije się ona o 92°... W ten sposób powstanie martwa strefa 90° w którą nigdy nie odbije się kuleczka.

 

I tak po uwzględnieniu, że kuleczka nie jest nieskończenie mała to jest nikła szansa na to, że jej trajektoria będzie przechodzić przez wierzchołek klocka :)

Edytowane przez PelzaK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...