2016-05-08 23 views
-1

我有一個前臺屏幕,我將爲我的項目。 但問題是它沒有發生。應該是這樣的,通過按下某個指定的按鍵,前面屏幕應該隨着項目屏幕切換。前屏切換

這裏我所做的是,我已經指定一個整型值給一個變量。

int flag=0; 

而且我有這方面的關鍵,其定義爲:在一個函數

if(key=='b'||key=='B') 
{ 
    if(flag==0) 
     flag=1; 
} 

然後我提供了條件。

void mydisplay(void) 
    { 
    //glClear(GL_COLOR_BUFFER_BIT); 
    if(flag==0) 
     window(); 
    if(flag==1) 
     display(); 
} 

窗函數定義爲:

void window(void) 
{ 
glutInitDisplayMode (GLUT_DOUBLE); 
glutInitWindowSize (1920,1080); 
glutInitWindowPosition (0,0); 
glutCreateWindow ("3D GLOBE"); 
glutDisplayFunc (display10); 
glutIdleFunc (display10); 
glutReshapeFunc (reshape10); 

//Load our texture 
texture[9] = LoadTexture1("docd.bmp", 1754, 1240); 
} 

並在此之後我打電話的主要功能

int main (int argc, char **argv) 
{ 


glutInit (&argc, argv); 


glutInitDisplayMode (GLUT_DOUBLE | GLUT_DEPTH); 

glutInitWindowSize (1920,1080); 

glutInitWindowPosition (0,0); 

glutCreateWindow ("3D GLOBE"); 

init(); 

createmenu(); 


glutDisplayFunc (mydisplay); 
glutIdleFunc (spinsphere); 


glutKeyboardFunc(keys); 

glutReshapeFunc (reshape); 


glutMainLoop(); 

return 0; 
} 

回答

0

嘛mydisplay功能,你只需要:

int flag=0; 

and

if(key=='b'||key=='B') 
{ 
    if(flag==1) 
     flag=0; 
} 

這個條件是從來沒有fullfilled,所以按鍵將永遠不會有任何效果,「flag`將永遠留在0

+0

我已經做了一些改動的地方鍵盤功能。如果(鍵=='b'||鍵=='B') { if(flag == 0) flag = 1; }但沒用。 – saurabh

0

這個問題的答案是非常簡單的。只需將項目代碼功能複製到您要分配的特定鍵以輸入項目即可。封面顯示功能主要功能。

這裏是代碼 這是我的項目功能,我以前主要使用它。

if(key=='b'||key=='B') 
    { 
    glutInitDisplayMode (GLUT_DOUBLE | GLUT_DEPTH); 
    glutInitWindowSize (1920,1080); 
    glutInitWindowPosition (0,0); 
    glutCreateWindow ("3D GLOBE"); 
    glutDisplayFunc(display); 
    init(); 
    createmenu(); 
    glutIdleFunc (spinsphere); 
    glutKeyboardFunc(keys); 
    glutReshapeFunc (reshape); 
    } 

,這裏是我的主要功能 也確保您將使用兩個

int main (int argc, char **argv) 
    { 


    glutInit (&argc, argv); 
     //front screen functions 
    glutInitDisplayMode (GLUT_DOUBLE); 
    glutInitWindowSize (1920,1080); 
    glutInitWindowPosition (0,0); 
    glutCreateWindow ("3D GLOBE"); 
    glutDisplayFunc (display10); 
    glutIdleFunc (display10); 
    glutReshapeFunc (reshape10); 
    //Load our texture 
    texture[9] = LoadTexture1("docd.bmp", 1754, 1240); 
    glutKeyboardFunc(keys); 
    /*glutInitDisplayMode (GLUT_DOUBLE | GLUT_DEPTH); 
    glutInitWindowSize (1920,1080); 
    glutInitWindowPosition (0,0); 
    glutCreateWindow ("3D GLOBE"); 
    glutDisplayFunc(display); 
    init(); 
    createmenu(); 
    glutIdleFunc (spinsphere); 
    glutKeyboardFunc(keys); 
    glutReshapeFunc (reshape); 

*/ 
    glutMainLoop(); 

    return 0; 
} 
+0

爲什麼你的縮進如此虛無? –

+0

我很匆忙! – saurabh

+0

編寫適當的縮進需要十秒鐘,您應該養成默認做這種做法的習慣,並且在此處發佈代碼時_definitely_。肯定需要做更多的努力才能弄錯它! –