前屏幕切换
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;
}
相关文章:
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 使用 SFML 和 C++ 将 Pixel 打印到屏幕上
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- Winapi:屏幕截图未显示在窗口中
- 如何在快板的屏幕中显示子位图的绘制?
- 按回车键后输出屏幕关闭
- 要在屏幕上绘制一些小瓷砖,我应该使用 QQuickItem 还是 QQuickPaintedItem?
- SFML 向下移动时如何围绕屏幕中心旋转?
- 截取屏幕截图后程序卡住
- C++鼠标单击时的屏幕截图不起作用
- 屏幕插入运算符<<的运算符过载问题
- 获取网格中心的屏幕位置
- SFML 中的字体.信息不显示在屏幕上.显示的不是信息,而是点
- 如何在屏幕上环绕x和y?
- GetDIBits 在屏幕捕获函数中多次迭代后返回零
- OpenGL ES 2.0将纹理绘制到屏幕上是行不通的
- GTKMM:拍摄绘图区域的屏幕截图?
- OpenGL - 添加第二个着色器属性会导致空白屏幕
- 使用 C++将文本光标移动到屏幕中不可见的行