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

[SFML] Ulepszenie kolizji zderzających się kółek

Ostatnio zmodyfikowano 2013-08-31 23:13
Autor Wiadomość
SeaMonster131
» 2013-08-20 11:00:52
Kąt między środkami tych okręgów/kół? Użyj funkcji
atan2()
.
P-90589
maly
» 2013-08-20 11:30:37
C/C++
bool kolizja( vec pozycjaA, float promienA, vec pozycjaB, float promienB, float & glebokosc, vec & normalna )
{
    float lp = dlugosc( pozycjaA, pozycjaB );
    float lr = promienA + promienB;
    if( lp > lr )
         return false;
   
    glebokosc = fabs( lp - lr );
    if( glebokosc <= 0 )
         return false;
   
    normalna = pozycjaA - pozycjaB;
    return true;
}
///
if( kolizja( pozycjaA, promienA, pozycjaB, promienB, glebokosc, normalna ) )
{
    // cofniecie kuli
    normalize( normalna );
    normalna *= glebokosc;
    pozycjaA += normalna;
    // kierunek po odbiciu
    vec nowyKierunek( kierunekA.x - 2 *- normalna.x, kierunekA.y - 2 *- normalna.y );
    normalize( nowyKierunek );
    nowyKierunek *= szybkosc;
    kierunekA = nowyKierunek;
}
Pisane z pamięci więc mogłem się gdzieś walnąć.
P-90593
domin568
Temat założony przez niniejszego użytkownika
» 2013-08-20 16:06:09
Rozumiem ze funkcja długość oblicza odległość miedzy punktami ?? Po co używasz funkcji fabs ?? Wielkie dzięki :)
P-90629
maly
» 2013-08-20 17:09:19
Faktycznie mogłem nazwać to odleglosc a glebokosc musi mieć dodatnią wartość więc prewencyjnie użyłem fabs.
P-90632
domin568
Temat założony przez niniejszego użytkownika
» 2013-08-20 17:46:06
A o co chodzi z tymi normalnymi ?? ( vector normalne i funkcja normalize )
P-90633
pekfos
» 2013-08-20 18:19:55
P-90636
maly
» 2013-08-20 18:57:12
normalize to funkcja ustawiająca wektor do długości 1.0.
C/C++
normalize( vec & v )
{
    float l = dlugosc( v );
    if( l )
         v /= l;
   
}
P-90640
domin568
Temat założony przez niniejszego użytkownika
» 2013-08-20 18:57:54
No dobra , ale  vec nowyKierunek( kierunekA.x - 2 *- normalna.x, kierunekA.y - 2 *- normalna.y ); jest dla mnie nie zrozumiałe , czy 2 oznacza o ile sie ma obiekt przemiescic ?? "-2*-" mógłbyś wytłumaczyć mały :) ?? Pefkos dzięki , nie mogłem tego znaleźć :)
P-90641
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona