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

[OpenGL] Proste wykrywanie kolizji

Ostatnio zmodyfikowano 2014-02-17 13:41
Autor Wiadomość
korkoran
Temat założony przez niniejszego użytkownika
[OpenGL] Proste wykrywanie kolizji
» 2014-02-08 18:02:56
Witam,

Pisze pierwszą prostą grę w OpenGL. Są to warcaby. Mam problem z sprawdzaniem czy na polu, w które gracz chce przenieść pionek nie ma innego pionka. Napisałem prostą funkcję odpowiadającą za to lecz nie zawsze wykrywa ona kolizje. Działa ona dla większości pionków lecz kilku wciąż nie wykrywa i nie jestem w stanie znaleźć rozwiązania tego problemu. Będę bardzo wdzięczny za wszelką pomoc w tym temacie.

Funkcja odpowiedzialna za kolizje:
 
C/C++
bool czykolizja( int pozycja, float zmianax, float zmianaz, glm::vec3 * pionki )
{
   
    for( int i = 0; i < 12; i++ )
    {
        if( glm::all( glm::equal( pionki[ i ], glm::vec3( pionki[ pozycja ].x + zmianax, 0.0f, pionki[ pozycja ].z + zmianaz ) ) ) ) {
            cout << "Kolizja z pionkiem numer " << i << endl;
            return false;
        }
    }
    return true;
}
P-104259
DejaVu
» 2014-02-17 13:41:30
Czemu chcesz wykorzystywać jakiekolwiek narzędzia do wykrywania kolizji, skoro wystarczy sprawdzić zawartość tablicy, która opisuje stan rozgrywki?

C/C++
if( tablica[ y ][ x ] != 0 )
{
    //jest kolizja
}
P-104767
« 1 »
  Strona 1 z 1