Я играю в 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);
}
}
Выше очень малая часть моего кода... Я не получаю точных результатов, это не работает.И я делаю еще одну функцию столкновения для клавиши «вниз»?