ďťż

Ładny brzuch

Pisze kolejny klon arkanoida w Delphi i mam pewien problem:
Jaki algorytm można zastosowac do odbicia piłki... :) tzn obliczyc tylko jej kierunek
0..360. Napewno można zrobic to łatwo. Moj kod zajmuje troche sporo, bo sprawdzam każdy kierunek np:
 // Lewa Sciana  // Strona NW  if (dir < 270) and (dir > 180) then    dir := dir + (180 - (dir - 180)*2);  // Strona SW  if (dir < 180) and (dir > 90) then    dir := dir - (180 - (180 - dir)*2);
itp. itd... Jak widzicie nie jest to najlepsze rozwiązanie... :( Macie jakies inne pomysły? Please...
Dopiero raczkuję w pisaniu gier więc bądzcie wyrozumiali.
Mozecie pisac tez w C++ jak kto woli ;)



Hmmm swego czasu było to w ekspercie tylko że w C++ :) ale algorytm do Delphi raczej łatwo przenieść :P

hmmm... nie prosciej patrzec na predkosc jako wektor w kartezjanskim ukladzie wspolrzednych ? to zawsze bylo IMHO jedynym sensownym rozwiazaniem. wtedy odbicie sie od scian rownoleglych do osi ukladu wspolrzednych to jest po prostu negacja jednego z elementow wektora. Jezeli koniecznie chcesz trzymac w ukladzie biegunowym ( nie wiem po co ) to przelicza sie bardzo prosto:
( dla 2 wymiarowej przestrzeni )
R= sqrt(x^2 + y^2), alph=arc tan ( y/x ).
w druga strone x=sin(alph)*R, y=cos(alph)*R
Użytkownik jaro3000 edytował ten post 28 sierpień 2005, 14:57
Hmm. masz rację, łatwiej jest w układzie współrzędnych, poco sie chraniłem z tymi kierunkami to niewiem. :D Problem rozwiązany. Thanks Jaro. ;)
Ekhm... Ale nasunęło mi się kolejne pytanie:
Jak napisać system kolizji oparty na okręgu? Na razie stosuje tylko ten "prostokątny", gdy dwa recty pokrywają się ze sobą to stwierdzam kolizję. Wiecie o co biega :).




(...)
Jak napisać system kolizji oparty na okręgu? Na razie stosuje tylko ten "prostokątny", gdy dwa recty pokrywają się ze sobą to stwierdzam kolizję. Wiecie o co biega :).

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •