前屏幕切换

Front screen switching

本文关键字:屏幕      更新时间:2023-10-16

我有一个前屏幕,我要把它放在我的项目中。但问题是它没有发生。它应该像,通过按下一些指定的键前屏幕应该与项目屏幕切换。

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

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

在这之后,我在主函数中调用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;
}

好吧,你只需要:

int flag=0;

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

该条件永远不会被完全填充,因此按键永远不会有任何效果,"flag"将始终保持在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;
}