Проверка столкновения автомобильного объекта с мировыми координатами - PullRequest
0 голосов
/ 16 мая 2011

Я играю в opengl C ++ для парковки.Я хочу проверить столкновение моего автомобильного объекта. У меня есть 10 конечных вершин автомобиля относительно мировых координат.И мы сохранили их отдельно в двух массивах для x и y как x [10] и y [10], так что теперь предположим, что мне нужно проложить барьерную линию, выше которой автомобиль не должен пройти, и обозначить конечные координаты как (x1, y1) и(x2, y2), где y1 = y2 ... что я должен делать?

Я пытался сделать это

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);

    }

}

Выше очень малая часть моего кода... Я не получаю точных результатов, это не работает.И я делаю еще одну функцию столкновения для клавиши «вниз»?

1 Ответ

1 голос
/ 16 мая 2011

OpenGL - это ни математика, ни геометрия, ни обнаружение столкновений, ни физическая библиотека. Это API рисования, все, что он делает, это рисует красивые картинки на экран. Период.

Все, что вам нужно, нужно реализовать самостоятельно или использовать стороннюю библиотеку.

...