前屏切换

时间:2016-05-08 12:00:51

标签: c++ opengl

我有一个前面的屏幕,我将为我的项目。  但问题是它没有发生。应该是这样,按下一些指定的键前屏幕应该切换到项目屏幕。

这里我所做的是,我已经为变量指定了一个整数值。

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

在此之后我在main函数中调用mydisplay函数

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

2 个答案:

答案 0 :(得分:0)

嗯,你刚才:

int flag=0;

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

该条件永远不会被填满,因此按键将永远不会产生任何影响,并且' flag`将始终保持为0。

答案 1 :(得分: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;
}