测试汽车对象相对于世界坐标的碰撞

时间:2011-05-16 18:46:58

标签: c++ collision-detection

我正在做一个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 个答案:

答案 0 :(得分:1)

OpenGL不仅是数学,也不是几何,也不是碰撞检测,也不是物理库。这是一个绘图API,它只是将漂亮的图片绘制到屏幕上。周期。

您需要的任何其他东西必须自己实施或使用第三方库。