Prueba de colisión de objeto de automóvil con respecto a las coordenadas mundiales

Estoy haciendo un juego de estacionamiento de autos opengl C ++. Quiero probar la colisión del objeto de mi automóvil en los 10 vértices finales del automóvil con respecto a las coordenadas mundiales. Y los he almacenado por separado en dos matrices para xey como x [10] y y [10], así que ahora suponga que necesito una línea de barrera por encima de la cual el automóvil no debería pasar y cinco coordenadas finales como (x1, y1) y (x2, y2), donde y1 = y2 ... ¿qué se supone que debo hacer?

Intenté hacer esto

int collision()
{
for(i=0;i<=10;i++)
    {

    if( y[i]>=y1)
        {printf("\a");
    return 1;}}


else return 0;
}

if( key == GLUT_KEY_UP) // up
{
    glTranslatef(0.0,.1,0.0);
    c=collision();
    if(c==1)
        goto l1;
glTranslatef(0.0,.1,0.0);   
c=collision();
if(c==1)
        goto l1;
glTranslatef(0.0,.1,0.0);
c=collision();
if(c==1)
        goto l1;
glTranslatef(0.0,.1,0.0);
c=collision();
if(c==1)
        goto l1;
glTranslatef(0.0,.1,0.0);
c=collision();
if(c==1)
    {l1:
glTranslatef(0,-0.5,0);

    }

}

Lo anterior es una parte muy pequeña de mi código ... No obtengo resultados precisos, no funciona. ¿Y hago otra función de colisión para la tecla abajo?

preguntado el 16 de mayo de 11 a las 18:05

OpenGL es una biblioteca de gráficos, no tiene concepto de colisión. -

1 Respuestas

OpenGL no es ni una matemática, ni una geometría, ni una detección de colisiones, ni una biblioteca de física. Es una API de dibujo, todo lo que hace es dibujar bonitas imágenes en la pantalla. Período.

Cualquier otra cosa que necesite, debe implementarla usted mismo o utilizar una biblioteca de terceros.

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.