Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Inny sposób na kolizje

Ostatnio zmodyfikowano 2009-08-07 16:34
Autor Wiadomość
eBbi
Temat założony przez niniejszego użytkownika
Inny sposób na kolizje
» 2009-08-07 14:52:38
Witam all :}.

       Mam taki mały problem. No może nie problem ale chcę się poradzić.
Piszę taką prostą grę która posłuży do napisania tutora. W grze tej chodzi ze odbija się kólka od paletki i uderza albo w ściany albo w klocki. Celem jest zbicie wszystkich klocków. Noi zatrzymałem się na kolizji piłeczki z klockami.

-Pierwszy algorytm jaki napisałem polegał na tym że szuka wysokość(y)i szerokość(x) piłeczki i wszystkich klockó( klocki w tablicy: klocek[15][3], 0 -x, 1 -y, 2 -czy istnieje. szerokość 50 i 20 px wysokosc.), a następnie sprawdza czy się mieści w danej szerokości klocka i czy się zgadza wysokość. taki poglądowy kodzik:

for(int i = 0; i<15; i++);
    if(!klocek[i][2])
    contiune;
    if(y == klocek[i][1]+20)
    {
        if(x>=klocek[i][0]&& x<=klocek[i][0]+50)
        klocek[i][2]=0;
    }
}
 Minusem tego jest że musiał bym pisać taki algorytm dla każdej strony z osobna, bo ten kawałem zalicza tylko uderzenie od dołu.

I tu się chce was poradzić.
Jak inaczej napisali byście kolizje do tej gry?
.
Myslałem jeszcze o zarezerwowaniu danego koloru dla klocków i sprawdzanie tla pileczki. Jak najedzie np na zielony to sprawdzi do jakiego klocka zalicza się ten piksel i go usunie.

Czekam na inne wasze propozycje. Z góry pozdrawiam eBbi.

  EDIT: czyż by nie było innych możliwości?

P-9181
malan
» 2009-08-07 15:35:51
1.
C/C++
getpixel( bufor, poz_x, poz_y );
2. Możesz też spróbować odczytywać pozycję piłeczki:
C/C++
if( poz_x >= 0 && poz_x <= 20 && poz_y >= 0 && poz_y <= 20 )
     Usun_pileczke();

poz_x i poz_y to pozycja piłeczki. Jak można zauważyć po parametrach klocek jest kwadratem i jest położony w lewym górnym rogu ekranu.
P-9185
DejaVu
» 2009-08-07 15:36:33
Sporo tematów było już poruszanych na forum:
[google] site:forum.ddt.pl kolizje
Myślę, że coś tam znajdziesz sensownego. Generalnie zastanów się czy zrobienie z piłki kwadratu (kolizyjnego) jest akceptowalnym rozwiązaniem. W tym momencie masz sytuację, w której wykrywasz kolizje między prostokątami, a co za tym idzie możesz wykorzystać funkcję, która wielokrotnie przewijała się na forum.
P-9186
WunM
» 2009-08-07 16:34:10
Jeśli pracował bym na polygonach i budował silnik fizyki to pewnie wykorzystał bym metodę SAT.
P-9191
« 1 »
  Strona 1 z 1