OpenGL -鼠标左键点击不断删除我的网格
OpenGL - Left mouse click keeps removing my grid
我已经创建了一个drawGrid()
函数,它沿着我的X和Y轴绘制一个正方形网格,它工作得很好。然后我创建了一个menu()
函数(在main()
中调用),它可以切换网格的打开和关闭,下面是该函数的代码:
void menu(int item)
{
switch (item)
{
case MENU_SWITCH_OFF_GRID:
{
if (gridActive == true)
{
gridActive = true;
}
}
break;
case MENU_SWITCH_ON_GRID:
{
if (gridActive == true)
{
gridActive = false;
}
}
break;
default:
{ /* Nothing */ }
break;
}
glutPostRedisplay();
return;
}
}
菜单开关工作正常,因为我已经创建了一个名为gridActive
的全局变量,没有 true
或false
值,所以它不会每次重置,这样它就可以在我的display()
函数中访问,如下:
if (gridActive != true)
{
drawGrid();
gridActive = true;
}
所有这些都可以正常工作。
我的问题是什么?
我的问题是,每当我点击鼠标左键,我的网格消失了,这是我不想要的。所以我创建了一个mouse()
函数,像这样:
case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN)
{
exit(0); // this has been added to see if
// my program will exit!
}
break;
测试当我点击鼠标左键时程序是否退出,退出。
所以,而不是使用exit(0);
什么代码我可以放在这里,使我的网格不会消失,当我点击鼠标左键?或者问题不止于此?
:
下面是鼠标的功能:
void mouse(int button, int state, int x, int y)
{
// these have simply been set-up for me to use
// in the future
switch (button)
{
case GLUT_LEFT_BUTTON: if (state == GLUT_DOWN)
{
}
break;
case GLUT_RIGHT_BUTTON: if (state == GLUT_DOWN)
{
}
break;
default: break;
}
}
根据您的代码:
if (gridActive != true)
{
drawGrid();
gridActive = true;
}
只在gridActive
为false时绘制网格。但是,在每次绘制它之后,您设置gridActive=true
,然后将停止绘制它。
如果没有更多的代码,就不可能确切地知道发生了什么,但是这些行可能不像您想象的那样工作,这可能会导致一些问题。
这不会做任何事情。
if (gridActive == true)
{
gridActive = true;
}
:
if (gridActive == true)
{
gridActive = false;
}
等于:
gridActive = false;
为了告诉发生了什么,虽然,我们需要知道当exit
调用不在那里时单击鼠标按钮会发生什么,但是您还没有发布该代码。
还有,我不太明白你说的
是什么意思。我已经创建了一个全局变量gridActive,没有true或false值,所以它不会每次重置
,但听起来你做了一个未初始化的全局变量,并期望它有一些特定的含义,因为它是未初始化的?
相关文章:
- 为什么我的删除节点函数实际上没有删除节点?
- 为什么我的双向链表删除函数会删除多个节点?
- 我叫删除,但我的d-tor没有叫,为什么?
- 我可以从列表中获取对象并复制它们,但如何删除我复制的对象?
- 为什么我的程序在读取/写入文件时会删除最重要的数字?
- 将内容从第一个文件("constituencies")移动到第二个文件("temp")并在之后重命名时,我的文件被删除
- 带有AUTOMOC的CMake正在删除我的实现
- 为什么将鼠标悬停在静态 Win32 控件上会增加内存并删除我的 GUI?
- 析构函数立即调用并删除我的数组
- 如何阻止编译器删除我的功能
- 为什么我不能删除我的节点和参考
- 如何从仅使用字母的矢量字符串中删除?我的代码不会删除我需要删除的每个字符串
- vector.erase-它总是删除我的最后一个元素
- makefile删除我的.cpp文件
- 为什么 C++11 隐式删除我的默认构造函数
- 什么负责删除我的指针
- 析构函数,不会删除我的对象
- 为什么QML正在删除我的C++ListView模型
- OpenGL -鼠标左键点击不断删除我的网格
- 我如何剥离Qt库,以删除我的应用程序不使用的东西