2011-05-16 52 views
0

我正在做一個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); 

    } 

} 

以上是我的代碼非常小的一部分......我沒有得到它的工作不準確的結果。 我還要爲down鍵做另外的碰撞函數嗎?

+2

OpenGL是一個圖形庫,它沒有碰撞的概念。 – fredoverflow 2011-05-16 18:54:13

回答

1

OpenGL是一個數學,也不是一個幾何,也不是一個碰撞檢測,也不是一個物理庫。這是一個繪圖API,它所做的就是在屏幕上繪製漂亮的圖片。期。

任何你需要的,你必須自己實現它或使用第三方庫。